Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
542908 | 51 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Router
Compiler Version
v0.8.22+commit.4fc1097e
ZkSolc Version
v1.5.7
Contract Source Code (Solidity)
/** *Submitted for verification at abscan.org on 2025-02-01 */ // Sources flattened with hardhat v2.19.5 https://hardhat.org // SPDX-License-Identifier: MIT // File @openzeppelin/contracts/token/ERC20/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); } // File @openzeppelin/contracts/utils/math/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol) pragma solidity ^0.8.0; /** * @dev Standard math utilities missing in the Solidity language. */ library Math { enum Rounding { Down, // Toward negative infinity Up, // Toward infinity Zero // Toward zero } /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a > b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow. return (a & b) + (a ^ b) / 2; } /** * @dev Returns the ceiling of the division of two numbers. * * This differs from standard division with `/` in that it rounds up instead * of rounding down. */ function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b - 1) / b can overflow on addition, so we distribute. return a == 0 ? 0 : (a - 1) / b + 1; } /** * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0 * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) * with further edits by Uniswap Labs also under MIT license. */ function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) { unchecked { // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256 // variables such that product = prod1 * 2^256 + prod0. uint256 prod0; // Least significant 256 bits of the product uint256 prod1; // Most significant 256 bits of the product assembly { let mm := mulmod(x, y, not(0)) prod0 := mul(x, y) prod1 := sub(sub(mm, prod0), lt(mm, prod0)) } // Handle non-overflow cases, 256 by 256 division. if (prod1 == 0) { // Solidity will revert if denominator == 0, unlike the div opcode on its own. // The surrounding unchecked block does not change this fact. // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic. return prod0 / denominator; } // Make sure the result is less than 2^256. Also prevents denominator == 0. require(denominator > prod1, "Math: mulDiv overflow"); /////////////////////////////////////////////// // 512 by 256 division. /////////////////////////////////////////////// // Make division exact by subtracting the remainder from [prod1 prod0]. uint256 remainder; assembly { // Compute remainder using mulmod. remainder := mulmod(x, y, denominator) // Subtract 256 bit number from 512 bit number. prod1 := sub(prod1, gt(remainder, prod0)) prod0 := sub(prod0, remainder) } // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1. // See https://cs.stackexchange.com/q/138556/92363. // Does not overflow because the denominator cannot be zero at this stage in the function. uint256 twos = denominator & (~denominator + 1); assembly { // Divide denominator by twos. denominator := div(denominator, twos) // Divide [prod1 prod0] by twos. prod0 := div(prod0, twos) // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one. twos := add(div(sub(0, twos), twos), 1) } // Shift in bits from prod1 into prod0. prod0 |= prod1 * twos; // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for // four bits. That is, denominator * inv = 1 mod 2^4. uint256 inverse = (3 * denominator) ^ 2; // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works // in modular arithmetic, doubling the correct bits in each step. inverse *= 2 - denominator * inverse; // inverse mod 2^8 inverse *= 2 - denominator * inverse; // inverse mod 2^16 inverse *= 2 - denominator * inverse; // inverse mod 2^32 inverse *= 2 - denominator * inverse; // inverse mod 2^64 inverse *= 2 - denominator * inverse; // inverse mod 2^128 inverse *= 2 - denominator * inverse; // inverse mod 2^256 // Because the division is now exact we can divide by multiplying with the modular inverse of denominator. // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1 // is no longer required. result = prod0 * inverse; return result; } } /** * @notice Calculates x * y / denominator with full precision, following the selected rounding direction. */ function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) { uint256 result = mulDiv(x, y, denominator); if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) { result += 1; } return result; } /** * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down. * * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11). */ function sqrt(uint256 a) internal pure returns (uint256) { if (a == 0) { return 0; } // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target. // // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`. // // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)` // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))` // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)` // // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit. uint256 result = 1 << (log2(a) >> 1); // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128, // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision // into the expected uint128 result. unchecked { result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; return min(result, a / result); } } /** * @notice Calculates sqrt(a), following the selected rounding direction. */ function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = sqrt(a); return result + (rounding == Rounding.Up && result * result < a ? 1 : 0); } } /** * @dev Return the log in base 2, rounded down, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 128; } if (value >> 64 > 0) { value >>= 64; result += 64; } if (value >> 32 > 0) { value >>= 32; result += 32; } if (value >> 16 > 0) { value >>= 16; result += 16; } if (value >> 8 > 0) { value >>= 8; result += 8; } if (value >> 4 > 0) { value >>= 4; result += 4; } if (value >> 2 > 0) { value >>= 2; result += 2; } if (value >> 1 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 2, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log2(value); return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0); } } /** * @dev Return the log in base 10, rounded down, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10 ** 64) { value /= 10 ** 64; result += 64; } if (value >= 10 ** 32) { value /= 10 ** 32; result += 32; } if (value >= 10 ** 16) { value /= 10 ** 16; result += 16; } if (value >= 10 ** 8) { value /= 10 ** 8; result += 8; } if (value >= 10 ** 4) { value /= 10 ** 4; result += 4; } if (value >= 10 ** 2) { value /= 10 ** 2; result += 2; } if (value >= 10 ** 1) { result += 1; } } return result; } /** * @dev Return the log in base 10, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log10(value); return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0); } } /** * @dev Return the log in base 256, rounded down, of a positive value. * Returns 0 if given 0. * * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. */ function log256(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 16; } if (value >> 64 > 0) { value >>= 64; result += 8; } if (value >> 32 > 0) { value >>= 32; result += 4; } if (value >> 16 > 0) { value >>= 16; result += 2; } if (value >> 8 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 256, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log256(value); return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0); } } } // File @openzeppelin/contracts/utils/math/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // 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 subtraction 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; } } } // File contracts/interfaces/IPair.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IPair { function burn(address to) external returns (uint amount0, uint amount1); function claimFees() external returns (uint, uint); function getAmountOut(uint amountIn, address tokenIn) external view returns (uint); function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast); function mint(address to) external returns (uint liquidity); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; function stable() external view returns (bool); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function tokens() external returns (address, address); function transferFrom(address src, address dst, uint amount) external returns (bool); } // File contracts/interfaces/IPairFactory.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IPairFactory { function admin() external view returns (address); function feeManagers(address feeManager) external view returns (bool); function allPairsLength() external view returns (uint); function isPair(address pair) external view returns (bool); function pairCodeHash() external pure returns (bytes32); function getPair(address tokenA, address token, bool stable) external view returns (address); function createPair(address tokenA, address tokenB, bool stable) external returns (address pair); function getInitializable() external view returns (address, address, bool); function setPause(bool _state) external; function isPaused() external view returns (bool); function getFee(bool _stable) external view returns(uint256); function getRealFee(address _pair) external view returns(uint256); } // File contracts/interfaces/IWETH.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IWETH { function deposit() external payable; function transfer(address to, uint value) external returns (bool); function withdraw(uint) external; function balanceOf(address) external returns (uint); } // File contracts/Router.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; contract Router { using SafeMath for uint; struct route { address from; address to; bool stable; } address public immutable factory; IWETH public immutable weth; uint internal constant MINIMUM_LIQUIDITY = 10**3; modifier ensure(uint deadline) { require(deadline >= block.timestamp, 'Router: EXPIRED'); _; } constructor(address _factory, address _weth) { factory = _factory; weth = IWETH(_weth); } receive() external payable { assert(msg.sender == address(weth)); // only accept ETH via fallback from the WETH contract } function sortTokens(address tokenA, address tokenB) public pure returns (address token0, address token1) { require(tokenA != tokenB, 'Router: IDENTICAL_ADDRESSES'); (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), 'Router: ZERO_ADDRESS'); } function pairFor(address tokenA, address tokenB, bool stable) public view returns (address pair) { (address token0, address token1) = sortTokens(tokenA, tokenB); pair = IPairFactory(factory).getPair(token0, token1, stable); return pair; } // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset function quoteLiquidity(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) { require(amountA > 0, 'Router: INSUFFICIENT_AMOUNT'); require(reserveA > 0 && reserveB > 0, 'Router: INSUFFICIENT_LIQUIDITY'); amountB = amountA * reserveB / reserveA; } // fetches and sorts the reserves for a pair function getReserves(address tokenA, address tokenB, bool stable) public view returns (uint reserveA, uint reserveB) { (address token0,) = sortTokens(tokenA, tokenB); (uint reserve0, uint reserve1,) = IPair(pairFor(tokenA, tokenB, stable)).getReserves(); (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0); } // performs chained getAmountOut calculations on any number of pairs function getAmountOut(uint amountIn, address tokenIn, address tokenOut) external view returns (uint amount, bool stable) { address pair = pairFor(tokenIn, tokenOut, true); uint amountStable; uint amountVolatile; if (IPairFactory(factory).isPair(pair)) { amountStable = IPair(pair).getAmountOut(amountIn, tokenIn); } pair = pairFor(tokenIn, tokenOut, false); if (IPairFactory(factory).isPair(pair)) { amountVolatile = IPair(pair).getAmountOut(amountIn, tokenIn); } return amountStable > amountVolatile ? (amountStable, true) : (amountVolatile, false); } // performs chained getAmountOut calculations on any number of pairs function getAmountsOut(uint amountIn, route[] memory routes) public view returns (uint[] memory amounts) { require(routes.length >= 1, 'Router: INVALID_PATH'); amounts = new uint[](routes.length+1); amounts[0] = amountIn; for (uint i = 0; i < routes.length; i++) { address pair = pairFor(routes[i].from, routes[i].to, routes[i].stable); if (IPairFactory(factory).isPair(pair)) { amounts[i+1] = IPair(pair).getAmountOut(amounts[i], routes[i].from); } } } function isPair(address pair) external view returns (bool) { return IPairFactory(factory).isPair(pair); } function quoteAddLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired ) external view returns (uint amountA, uint amountB, uint liquidity) { // create the pair if it doesn't exist yet address _pair = IPairFactory(factory).getPair(tokenA, tokenB, stable); (uint reserveA, uint reserveB) = (0,0); uint _totalSupply = 0; if (_pair != address(0)) { _totalSupply = IERC20(_pair).totalSupply(); (reserveA, reserveB) = getReserves(tokenA, tokenB, stable); } if (reserveA == 0 && reserveB == 0) { (amountA, amountB) = (amountADesired, amountBDesired); liquidity = Math.sqrt(amountA * amountB) - MINIMUM_LIQUIDITY; } else { uint amountBOptimal = quoteLiquidity(amountADesired, reserveA, reserveB); if (amountBOptimal <= amountBDesired) { (amountA, amountB) = (amountADesired, amountBOptimal); liquidity = Math.min(amountA * _totalSupply / reserveA, amountB * _totalSupply / reserveB); } else { uint amountAOptimal = quoteLiquidity(amountBDesired, reserveB, reserveA); (amountA, amountB) = (amountAOptimal, amountBDesired); liquidity = Math.min(amountA * _totalSupply / reserveA, amountB * _totalSupply / reserveB); } } } function quoteRemoveLiquidity( address tokenA, address tokenB, bool stable, uint liquidity ) external view returns (uint amountA, uint amountB) { // create the pair if it doesn't exist yet address _pair = IPairFactory(factory).getPair(tokenA, tokenB, stable); if (_pair == address(0)) { return (0,0); } (uint reserveA, uint reserveB) = getReserves(tokenA, tokenB, stable); uint _totalSupply = IERC20(_pair).totalSupply(); amountA = liquidity * reserveA / _totalSupply; // using balances ensures pro-rata distribution amountB = liquidity * reserveB / _totalSupply; // using balances ensures pro-rata distribution } function _addLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin ) internal returns (uint amountA, uint amountB) { require(amountADesired >= amountAMin); require(amountBDesired >= amountBMin); // create the pair if it doesn't exist yet address _pair = IPairFactory(factory).getPair(tokenA, tokenB, stable); if (_pair == address(0)) { _pair = IPairFactory(factory).createPair(tokenA, tokenB, stable); } (uint reserveA, uint reserveB) = getReserves(tokenA, tokenB, stable); if (reserveA == 0 && reserveB == 0) { (amountA, amountB) = (amountADesired, amountBDesired); } else { uint amountBOptimal = quoteLiquidity(amountADesired, reserveA, reserveB); if (amountBOptimal <= amountBDesired) { require(amountBOptimal >= amountBMin, 'Router: INSUFFICIENT_B_AMOUNT'); (amountA, amountB) = (amountADesired, amountBOptimal); } else { uint amountAOptimal = quoteLiquidity(amountBDesired, reserveB, reserveA); assert(amountAOptimal <= amountADesired); require(amountAOptimal >= amountAMin, 'Router: INSUFFICIENT_A_AMOUNT'); (amountA, amountB) = (amountAOptimal, amountBDesired); } } } function addLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) { (amountA, amountB) = _addLiquidity(tokenA, tokenB, stable, amountADesired, amountBDesired, amountAMin, amountBMin); address pair = pairFor(tokenA, tokenB, stable); _safeTransferFrom(tokenA, msg.sender, pair, amountA); _safeTransferFrom(tokenB, msg.sender, pair, amountB); liquidity = IPair(pair).mint(to); } function addLiquidityETH( address token, bool stable, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable ensure(deadline) returns (uint amountToken, uint amountETH, uint liquidity) { (amountToken, amountETH) = _addLiquidity( token, address(weth), stable, amountTokenDesired, msg.value, amountTokenMin, amountETHMin ); address pair = pairFor(token, address(weth), stable); _safeTransferFrom(token, msg.sender, pair, amountToken); weth.deposit{value: amountETH}(); assert(weth.transfer(pair, amountETH)); liquidity = IPair(pair).mint(to); // refund dust eth, if any if (msg.value > amountETH) _safeTransferETH(msg.sender, msg.value - amountETH); } // **** REMOVE LIQUIDITY **** function removeLiquidity( address tokenA, address tokenB, bool stable, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) public ensure(deadline) returns (uint amountA, uint amountB) { address pair = pairFor(tokenA, tokenB, stable); require(IPair(pair).transferFrom(msg.sender, pair, liquidity)); // send liquidity to pair (uint amount0, uint amount1) = IPair(pair).burn(to); (address token0,) = sortTokens(tokenA, tokenB); (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0); require(amountA >= amountAMin, 'Router: INSUFFICIENT_A_AMOUNT'); require(amountB >= amountBMin, 'Router: INSUFFICIENT_B_AMOUNT'); } function removeLiquidityETH( address token, bool stable, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) public ensure(deadline) returns (uint amountToken, uint amountETH) { (amountToken, amountETH) = removeLiquidity( token, address(weth), stable, liquidity, amountTokenMin, amountETHMin, address(this), deadline ); _safeTransfer(token, to, amountToken); weth.withdraw(amountETH); _safeTransferETH(to, amountETH); } function removeLiquidityWithPermit( address tokenA, address tokenB, bool stable, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB) { address pair = pairFor(tokenA, tokenB, stable); { uint value = approveMax ? type(uint).max : liquidity; IPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s); } (amountA, amountB) = removeLiquidity(tokenA, tokenB, stable, liquidity, amountAMin, amountBMin, to, deadline); } function removeLiquidityETHWithPermit( address token, bool stable, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH) { address pair = pairFor(token, address(weth), stable); uint value = approveMax ? type(uint).max : liquidity; IPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s); (amountToken, amountETH) = removeLiquidityETH(token, stable, liquidity, amountTokenMin, amountETHMin, to, deadline); } // **** SWAP **** // requires the initial amount to have already been sent to the first pair function _swap(uint[] memory amounts, route[] memory routes, address _to) internal virtual { for (uint i = 0; i < routes.length; i++) { (address token0,) = sortTokens(routes[i].from, routes[i].to); uint amountOut = amounts[i + 1]; (uint amount0Out, uint amount1Out) = routes[i].from == token0 ? (uint(0), amountOut) : (amountOut, uint(0)); address to = i < routes.length - 1 ? pairFor(routes[i+1].from, routes[i+1].to, routes[i+1].stable) : _to; IPair(pairFor(routes[i].from, routes[i].to, routes[i].stable)).swap( amount0Out, amount1Out, to, new bytes(0) ); } } function swapExactTokensForTokensSimple( uint amountIn, uint amountOutMin, address tokenFrom, address tokenTo, bool stable, address to, uint deadline ) external ensure(deadline) returns (uint[] memory amounts) { route[] memory routes = new route[](1); routes[0].from = tokenFrom; routes[0].to = tokenTo; routes[0].stable = stable; amounts = getAmountsOut(amountIn, routes); require(amounts[amounts.length - 1] >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT'); _safeTransferFrom( routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amounts[0] ); _swap(amounts, routes, to); } function swapExactTokensForTokens( uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline ) external ensure(deadline) returns (uint[] memory amounts) { amounts = getAmountsOut(amountIn, routes); require(amounts[amounts.length - 1] >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT'); _safeTransferFrom( routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amounts[0] ); _swap(amounts, routes, to); } function swapExactETHForTokens(uint amountOutMin, route[] calldata routes, address to, uint deadline) external payable ensure(deadline) returns (uint[] memory amounts) { require(routes[0].from == address(weth), 'Router: INVALID_PATH'); amounts = getAmountsOut(msg.value, routes); require(amounts[amounts.length - 1] >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT'); weth.deposit{value: amounts[0]}(); assert(weth.transfer(pairFor(routes[0].from, routes[0].to, routes[0].stable), amounts[0])); _swap(amounts, routes, to); } function swapExactTokensForETH(uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline) external ensure(deadline) returns (uint[] memory amounts) { require(routes[routes.length - 1].to == address(weth), 'Router: INVALID_PATH'); amounts = getAmountsOut(amountIn, routes); require(amounts[amounts.length - 1] >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT'); _safeTransferFrom( routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amounts[0] ); _swap(amounts, routes, address(this)); weth.withdraw(amounts[amounts.length - 1]); _safeTransferETH(to, amounts[amounts.length - 1]); } function UNSAFE_swapExactTokensForTokens( uint[] memory amounts, route[] calldata routes, address to, uint deadline ) external ensure(deadline) returns (uint[] memory) { _safeTransferFrom(routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amounts[0]); _swap(amounts, routes, to); return amounts; } function _safeTransferETH(address to, uint value) internal { (bool success,) = to.call{value:value}(new bytes(0)); require(success, 'TransferHelper: ETH_TRANSFER_FAILED'); } function _safeTransfer(address token, address to, uint256 value) internal { require(token.code.length > 0); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool)))); } function _safeTransferFrom(address token, address from, address to, uint256 value) internal { require(token.code.length > 0); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool)))); } // **** REMOVE LIQUIDITY (supporting fee-on-transfer tokens)**** function removeLiquidityETHSupportingFeeOnTransferTokens( address token, bool stable, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) public ensure(deadline) returns (uint amountToken, uint amountETH) { (amountToken, amountETH) = removeLiquidity( token, address(weth), stable, liquidity, amountTokenMin, amountETHMin, address(this), deadline ); _safeTransfer(token, to, IERC20(token).balanceOf(address(this))); weth.withdraw(amountETH); _safeTransferETH(to, amountETH); } function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, bool stable, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH) { address pair = pairFor(token, address(weth), stable); uint value = approveMax ? type(uint).max : liquidity; IPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s); (amountToken, amountETH) = removeLiquidityETHSupportingFeeOnTransferTokens( token, stable, liquidity, amountTokenMin, amountETHMin, to, deadline ); } // **** SWAP (supporting fee-on-transfer tokens) **** // requires the initial amount to have already been sent to the first pair function _swapSupportingFeeOnTransferTokens(route[] memory routes, address _to) internal virtual { for (uint i; i < routes.length; i++) { (address input, address output,) = (routes[i].from, routes[i].to, routes[i].stable); (address token0,) = sortTokens(input, output); IPair pair = IPair(pairFor(routes[i].from, routes[i].to, routes[i].stable)); uint amountInput; uint amountOutput; { // scope to avoid stack too deep errors (uint reserve0, uint reserve1,) = pair.getReserves(); (uint reserveInput,) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0); amountInput = IERC20(input).balanceOf(address(pair)).sub(reserveInput); //(amountOutput,) = getAmountOut(amountInput, input, output, stable); amountOutput = pair.getAmountOut(amountInput, input); } (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0)); address to = i < routes.length - 1 ? pairFor(routes[i+1].from, routes[i+1].to, routes[i+1].stable) : _to; pair.swap(amount0Out, amount1Out, to, new bytes(0)); } } function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline ) external ensure(deadline) { _safeTransferFrom( routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amountIn ); uint balanceBefore = IERC20(routes[routes.length - 1].to).balanceOf(to); _swapSupportingFeeOnTransferTokens(routes, to); require( IERC20(routes[routes.length - 1].to).balanceOf(to).sub(balanceBefore) >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT' ); } function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, route[] calldata routes, address to, uint deadline ) external payable ensure(deadline) { require(routes[0].from == address(weth), 'Router: INVALID_PATH'); uint amountIn = msg.value; weth.deposit{value: amountIn}(); assert(weth.transfer(pairFor(routes[0].from, routes[0].to, routes[0].stable), amountIn)); uint balanceBefore = IERC20(routes[routes.length - 1].to).balanceOf(to); _swapSupportingFeeOnTransferTokens(routes, to); require( IERC20(routes[routes.length - 1].to).balanceOf(to).sub(balanceBefore) >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT' ); } function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline ) external ensure(deadline) { require(routes[routes.length - 1].to == address(weth), 'Router: INVALID_PATH'); _safeTransferFrom( routes[0].from, msg.sender, pairFor(routes[0].from, routes[0].to, routes[0].stable), amountIn ); _swapSupportingFeeOnTransferTokens(routes, address(this)); uint amountOut = IERC20(address(weth)).balanceOf(address(this)); require(amountOut >= amountOutMin, 'Router: INSUFFICIENT_OUTPUT_AMOUNT'); weth.withdraw(amountOut); _safeTransferETH(to, amountOut); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"UNSAFE_swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"stable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"name":"getReserves","outputs":[{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"name":"pairFor","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"}],"name":"quoteAddLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"quoteRemoveLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"sortTokens","outputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"tokenFrom","type":"address"},{"internalType":"address","name":"tokenTo","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSimple","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"internalType":"struct Router.route[]","name":"routes","type":"tuple[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000aeb6eeba5d0b653317d9ed52ea28adfdbb50fb939671486c79188aa4f020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004000000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff20000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Deployed Bytecode
0x00040000000000020012000000000002000000600410027000000a80034001970003000000310355000200000001035500000a800040019d0000000100200190000000360000c13d0000004002000039000000800020043f000000a002000039000000400020043f000000040030008c000000680000413d000000000201043b000000e00220027000000a870020009c000000800000213d00000a990020009c000000ae0000a13d00000a9a0020009c0000023e0000a13d00000a9b0020009c000004770000213d00000a9e0020009c0000054a0000613d00000a9f0020009c00000f3d0000c13d000000640030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002401100370000000000101043b000d00000001001d00000a830010009c00000f3d0000213d29fb1cf20000040f00000000030100190000000e010000290000000d0200002929fb1e800000040f000000800300043d000000000303043300000020043000390000000000240435000008930000013d0000000002000416000000000002004b00000f3d0000c13d0000001f0230003900000a8102200197000000c002200039000000400020043f0000001f0430018f00000a8205300198000000c002500039000000470000613d000000c006000039000000000701034f000000007807043c0000000006860436000000000026004b000000430000c13d000000000004004b000000540000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c00000f3d0000413d000000c00100043d00000a830010009c00000f3d0000213d000000e00200043d00000a830020009c00000f3d0000213d000000800010043f000000a00020043f0000014000000443000001600010044300000020010000390000018000100443000001a00020044300000100001004430000000201000039000001200010044300000a8401000041000029fc0001042e000000000003004b00000f3d0000c13d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83011001970000000002000411000000000012004b000011920000c13d0000000001000019000029fc0001042e00000a880020009c000001f90000a13d00000a890020009c000002a20000a13d00000a8a0020009c000004e70000213d00000a8d0020009c0000056a0000613d00000a8e0020009c00000f3d0000c13d000000240030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000401100370000000000101043b00000a830010009c00000f3d0000213d00000abe02000041000000a00020043f000000a40010043f00000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b000000000100041400000a8302200197000000040020008c00000a140000c13d0000000103000031000000200030008c0000002004000039000000000403401900000a390000013d00000aa30020009c000003060000213d00000aa70020009c000007e40000613d00000aa80020009c000008ae0000613d00000aa90020009c00000f3d0000c13d000000a40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000002402100370000000000202043b000c00000002001d0000000402100370000000000202043b000d00000002001d0000004402100370000000000202043b000e00000002001d00000aae0020009c00000f3d0000213d0000000e020000290000002302200039000000000032004b00000f3d0000813d0000000e020000290000000402200039000000000221034f000000000202043b000b00000002001d00000aae0020009c00000f3d0000213d0000000e0200002900000024022000390000000b0400002900000060044000c9000900000002001d000a00000004001d0000000004240019000000000034004b00000f3d0000213d0000006402100370000000000202043b000800000002001d00000a830020009c00000f3d0000213d000600000004001d0000008401100370000000000101043b000700000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000070010006b000009800000413d0000000b0000006b000002380000613d0000000a020000290000000e012000290000001c0110008a0000000201100367000000000101043b000e00000001001d00000a830010009c00000f3d0000213d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83011001970000000e0010006b00000fbc0000c13d0000000b0100002900000005011002100000003f01100039000a0abb0010019b000000400200043d0000000a03200029000000000023004b0000000001000039000000010100403900000aae0030009c000000060a000029000008450000213d0000000100100190000008450000c13d0000000001000031000000400030043f0000000b03000029000000000032043500000000001a004b00000f3d0000213d000000020300036700000000040200190000000905000029000000000651004900000abc0060009c00000f3d0000213d000000600060008c00000f3d0000413d000000400600043d00000abd0060009c000008450000213d0000006007600039000000400070043f000000000753034f000000000707043b00000a830070009c00000f3d0000213d00000000087604360000002007500039000000000973034f000000000909043b00000a830090009c00000f3d0000213d00000000009804350000002007700039000000000773034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b00000f3d0000c13d000000200440003900000040086000390000000000780435000000000064043500000060055000390000000000a5004b000001250000413d0000000d0100002929fb1f890000040f000d00000001001d0000000021010434000700000002001d000000000001004b000002380000613d00000005011002100000000d0110002900000000010104330000000c0010006c0000073a0000413d00000002010003670000000902100360000000000202043b000c00000002001d00000a830020009c00000f3d0000213d00000009020000290000002002200039000000000221034f000000000202043b00000a830020009c00000f3d0000213d000000800300043d0000000903300029000000000131034f000000000301043b000000000003004b0000000001000039000000010100c039000000000013004b00000f3d0000c13d0000000c0100002929fb1db20000040f00000000030100190000000d010000290000000001010433000000000001004b00000c1e0000613d0000000701000029000000000401043300000000020004110000000c0100002929fb216c0000040f000000400200043d0000000a03200029000000000023004b0000000001000039000000010100403900000aae0030009c000000060b000029000008450000213d0000000100100190000008450000c13d0000000001000031000000400030043f0000000b03000029000000000032043500000000001b004b00000f3d0000213d0000000003000410000000020400036700000000050200190000000906000029000000000a060019000000000661004900000abc0060009c00000f3d0000213d000000600060008c00000f3d0000413d000000400600043d00000abd0060009c000008450000213d0000006007600039000000400070043f0000000007a4034f000000000707043b00000a830070009c00000f3d0000213d00000000087604360000002007a00039000000000974034f000000000909043b00000a830090009c00000f3d0000213d00000000009804350000002007700039000000000774034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b00000f3d0000c13d00000020055000390000004008600039000000000078043500000000006504350000006006a000390000000000b6004b0000018a0000413d0000000d0100002929fb21f60000040f0000000d010000290000000001010433000000000001004b000002380000613d00000005011002100000000d011000290000000001010433000c00000001001d00000ab30100004100000000001004430000000e010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000b00000002001d00000004012000390000000c02000029000000000021043500000000010004140000000e02000029000000040020008c000001e50000613d0000000b0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000e0200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001c9a0000613d0000000b0100002900000aae0010009c000008450000213d0000000b01000029000000400010043f0000000d010000290000000001010433000000000001004b000002380000613d000000010210008a0000000d0100002929fb1d840000040f0000000002010433000000080100002929fb23e10000040f000000800100043d0000000001010433000e00000001001d0000000d02000029000008730000013d00000a920020009c000003c90000213d00000a960020009c0000082f0000613d00000a970020009c000009510000613d00000a980020009c00000f3d0000c13d000000a40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000002402100370000000000202043b000c00000002001d0000000402100370000000000202043b000d00000002001d0000004402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d000a00040020003d0000000a04100360000000000404043b000b00000004001d00000aae0040009c00000f3d0000213d00000024042000390000000b0200002900000060022000c9000e00000042001d0000000e0030006b00000f3d0000213d0000006402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d000700000004001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000080010006b000009800000413d0000000b0000006b00000d070000c13d00000adc01000041000000000010043f0000001101000039000000040010043f00000ab001000041000029fd0001043000000aa00020009c0000074e0000613d00000aa10020009c0000087e0000613d00000aa20020009c00000f3d0000c13d000001240030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d000000e401100370000000000101043b000b00000001001d00000a830010009c00000f3d0000213d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b00000002010003670000010403100370000000000303043b000000000023004b000009800000413d0000000b0200002900090a830020019b0000006402100370000000000402043b0000008402100370000000000502043b000000a402100370000000000602043b000000c401100370000000000701043b0000000e010000290000000d020000290000000c0300002929fb24450000040f000b00000001001d000a00000002001d0000000e010000290000000d020000290000000c0300002929fb1db20000040f0000000003010019000c00000001001d00000000020004110000000e010000290000000b0400002929fb216c0000040f0000000d0100002900000000020004110000000c030000290000000a0400002929fb216c0000040f000000800100043d000000000201043300000ac9010000410000000000120435000e00000002001d00000004012000390000000902000029000000000021043500000000010004140000000c0200002900000a8302200197000000040020008c00000d8d0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000db70000013d00000a8f0020009c0000076b0000613d00000a900020009c0000089d0000613d00000a910020009c00000f3d0000c13d000000e40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000302043b000000000003004b0000000002000039000000010200c039000d00000003001d000000000023004b00000f3d0000c13d000000a402100370000000000202043b000c00000002001d00000a830020009c00000f3d0000213d000000c402100370000000000202043b000b00000002001d0000004402100370000000000202043b000a00000002001d0000006402100370000000000202043b000900000002001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b0000000b0010006b000009800000413d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83021001970000000e01000029000700000002001d0000000d0300002929fb1db20000040f000000800200043d000000000402043300000044024000390000000a03000029000000000032043500000aac020000410000000000240435000000000200041100000a83022001970000000403400039000000000023043500000a8302100197000d00000004001d000000240140003900000000002104350000000001000414000b00000002001d000000040020008c00000dd40000c13d0000000103000031000000200030008c0000002004000039000000000403401900000dff0000013d00000aa40020009c0000084b0000613d00000aa50020009c000009910000613d00000aa60020009c00000f3d0000c13d000001640030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000302043b000000000003004b0000000002000039000000010200c039000d00000003001d000000000023004b00000f3d0000c13d0000008402100370000000000202043b000a00000002001d0000006402100370000000000202043b000b00000002001d0000004402100370000000000202043b000c00000002001d000000a402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d000000c402100370000000000202043b000700000002001d000000e402100370000000000302043b000000000003004b0000000002000039000000010200c039000800000003001d000000000023004b00000f3d0000c13d0000010402100370000000000202043b000600000002001d000000ff0020008c00000f3d0000213d0000014402100370000000000202043b000400000002001d0000012401100370000000000101043b000500000001001d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83021001970000000e01000029000200000002001d0000000d0300002929fb1db20000040f00000ab302000041000000000020044300000a8301100197000300000001001d0000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010300008a000000080000006b0000000c03006029000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d0000000004010433000000c40140003900000004020000290000000000210435000000a4014000390000000502000029000000000021043500000084014000390000000602000029000000000021043500000064014000390000000702000029000000000021043500000044014000390000000000310435000000000100041000000a83011001970000002402400039000000000012043500000ac1010000410000000000140435000000000100041100000a8302100197000800000004001d0000000401400039000600000002001d000000000021043500000000010004140000000302000029000000040020008c0000039b0000613d000000080200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac2011001c7000000030200002929fb29f10000040f000000600310027000010a800030019d00030000000103550000000100200190000010ed0000613d000000080100002900000aae0010009c000008450000213d0000000801000029000000400010043f00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000070010006b000009800000413d0000000e0100002900000002020000290000000d0300002929fb1db20000040f000000800200043d000000000402043300000044024000390000000c03000029000000000032043500000aac02000041000000000024043500000004024000390000000603000029000000000032043500000a8302100197000d00000004001d000000240140003900000000002104350000000001000414000c00000002001d000000040020008c000012df0000c13d0000000103000031000000200030008c000000200400003900000000040340190000130a0000013d00000a930020009c000008560000613d00000a940020009c000009cb0000613d00000a950020009c00000f3d0000c13d000001840030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d0000006402100370000000000202043b000b00000002001d000000c402100370000000000202043b000a00000002001d00000a830020009c00000f3d0000213d000000e402100370000000000202043b000800000002001d0000010402100370000000000302043b000000000003004b0000000002000039000000010200c039000900000003001d000000000023004b00000f3d0000c13d0000012401100370000000000101043b000700000001001d000000ff0010008c00000f3d0000213d0000000e010000290000000d020000290000000c0300002929fb1db20000040f00000ab302000041000000000020044300000a8301100197000600000001001d0000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010300008a000000090000006b0000000b03006029000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000501043300000ac101000041000000000015043500000002010003670000014402100370000000000202043b0000016401100370000000000101043b000000c4045000390000000000140435000000a401500039000000000021043500000084015000390000000702000029000000000021043500000064015000390000000802000029000000000021043500000044015000390000000000310435000000000100041000000a830110019700000024025000390000000000120435000000000100041100000a8302100197000900000005001d0000000401500039000700000002001d000000000021043500000000010004140000000602000029000000040020008c000004490000613d000000090200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac2011001c7000000060200002929fb29f10000040f000000600310027000010a800030019d00030000000103550000000100200190000010fb0000613d000000090100002900000aae0010009c000008450000213d0000000901000029000000400010043f00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000080010006b000009800000413d0000000e010000290000000d020000290000000c0300002929fb1db20000040f000000800200043d000000000402043300000044024000390000000b03000029000000000032043500000aac02000041000000000024043500000004024000390000000703000029000000000032043500000a8302100197000c00000004001d000000240140003900000000002104350000000001000414000b00000002001d000000040020008c000013cd0000c13d0000000103000031000000200030008c00000020040000390000000004034019000013f80000013d00000a9c0020009c000006280000613d00000a9d0020009c00000f3d0000c13d000000a40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000002402100370000000000202043b000c00000002001d0000000402100370000000000202043b000d00000002001d0000004402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d000a00040020003d0000000a04100360000000000404043b000b00000004001d00000aae0040009c00000f3d0000213d00000024042000390000000b0200002900000060022000c9000e00000042001d0000000e0030006b00000f3d0000213d0000006402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d000700000004001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000080010006b000009800000413d0000000b0000006b00000c1e0000613d0000000a0100002900000020021000390000000201000367000000000321034f000000000303043b00000a830030009c000000070400002900000f3d0000213d0000002002200039000000000221034f000000000202043b00000a830020009c00000f3d0000213d0000000005030019000000800300043d0000000003430019000000000131034f000000000301043b000000000003004b0000000001000039000000010100c039000000000013004b00000f3d0000c13d0000000001050019000a00000005001d29fb1db20000040f000000000301001900000000020004110000000a010000290000000d0400002929fb216c0000040f0000000e01000029000000400110008a000a00000001001d0000000201100367000000000201043b00000a830020009c00000f3d0000213d000000800100043d000000000301043300000ab2010000410000000000130435000d00000003001d0000000401300039000000090300002900000000003104350000000001000414000000040020008c000012460000c13d0000000104000031000000200040008c0000002004008039000012700000013d00000a8b0020009c000006e40000613d00000a8c0020009c00000f3d0000c13d000000e40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000302043b000000000003004b0000000002000039000000010200c039000d00000003001d000000000023004b00000f3d0000c13d000000a402100370000000000202043b000c00000002001d00000a830020009c00000f3d0000213d000000c402100370000000000202043b000b00000002001d0000004402100370000000000202043b000a00000002001d0000006402100370000000000202043b000900000002001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b0000000b0010006b000009800000413d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000600000001001d00000a83021001970000000e01000029000700000002001d0000000d0300002929fb1db20000040f000000800200043d000000000402043300000044024000390000000a03000029000000000032043500000aac020000410000000000240435000000000200041100000a83022001970000000403400039000000000023043500000a8302100197000d00000004001d000000240140003900000000002104350000000001000414000b00000002001d000000040020008c00000c3d0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000c680000013d000000640030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000d00000002001d0000002402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000004401100370000000000101043b000c00000001001d00000a830010009c00000f3d0000213d0000000e010000290000000c02000029000000000021004b00000a070000c13d00000ab701000041000000a00010043f0000002001000039000000a40010043f0000001b01000039000000c40010043f00000aba01000041000000e40010043f00000ad101000041000029fd00010430000001640030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000302043b000000000003004b0000000002000039000000010200c039000d00000003001d000000000023004b00000f3d0000c13d0000008402100370000000000202043b000a00000002001d0000006402100370000000000202043b000b00000002001d0000004402100370000000000202043b000c00000002001d000000a402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d000000c402100370000000000202043b000700000002001d000000e402100370000000000302043b000000000003004b0000000002000039000000010200c039000800000003001d000000000023004b00000f3d0000c13d0000010402100370000000000202043b000600000002001d000000ff0020008c00000f3d0000213d0000014402100370000000000202043b000400000002001d0000012401100370000000000101043b000500000001001d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000100000001001d00000a83021001970000000e01000029000200000002001d0000000d0300002929fb1db20000040f00000ab302000041000000000020044300000a8301100197000300000001001d0000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010300008a000000080000006b0000000c03006029000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d0000000004010433000000c40140003900000004020000290000000000210435000000a4014000390000000502000029000000000021043500000084014000390000000602000029000000000021043500000064014000390000000702000029000000000021043500000044014000390000000000310435000000000100041000000a83011001970000002402400039000000000012043500000ac1010000410000000000140435000000000100041100000a8302100197000800000004001d0000000401400039000600000002001d000000000021043500000000010004140000000302000029000000040020008c000005fa0000613d000000080200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac2011001c7000000030200002929fb29f10000040f000000600310027000010a800030019d00030000000103550000000100200190000010df0000613d000000080100002900000aae0010009c000008450000213d0000000801000029000000400010043f00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000070010006b000009800000413d0000000e0100002900000002020000290000000d0300002929fb1db20000040f000000800200043d000000000402043300000044024000390000000c03000029000000000032043500000aac02000041000000000024043500000004024000390000000603000029000000000032043500000a8302100197000d00000004001d000000240140003900000000002104350000000001000414000c00000002001d000000040020008c000014560000c13d0000000103000031000000200030008c00000020040000390000000004034019000014810000013d000000840030008c00000f3d0000413d0000000402100370000000000202043b000e00000002001d0000002402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d000c00040020003d0000000c04100360000000000404043b000d00000004001d00000aae0040009c00000f3d0000213d000b00240020003d0000000d0200002900000060022000c90000000b04200029000000000034004b00000f3d0000213d0000004402100370000000000202043b000a00000002001d00000a830020009c00000f3d0000213d000800000004001d0000006401100370000000000101043b000900000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000090010006b000009800000413d0000000d0000006b00000c1e0000613d0000000c010000290000002001100039000900000001001d0000000201100367000000000101043b000c00000001001d00000a830010009c00000f3d0000213d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83011001970000000c0010006b00000fbc0000c13d0000000d0100002900000005011002100000003f0110003900000abb01100197000000400200043d0000000003120019000000000023004b0000000001000039000000010100403900000aae0030009c000000080a000029000008450000213d0000000100100190000008450000c13d0000000001000031000000400030043f0000000d03000029000000000032043500000000001a004b00000f3d0000213d000000020300036700000000040200190000000b05000029000000000651004900000abc0060009c00000f3d0000213d000000600060008c00000f3d0000413d000000400600043d00000abd0060009c000008450000213d0000006007600039000000400070043f000000000753034f000000000707043b00000a830070009c00000f3d0000213d00000000087604360000002007500039000000000973034f000000000909043b00000a830090009c00000f3d0000213d00000000009804350000002007700039000000000773034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b00000f3d0000c13d000000200440003900000040086000390000000000780435000000000064043500000060055000390000000000a5004b0000068b0000413d000000000100041629fb1f890000040f000800000001001d0000000021010434000700000002001d000000000001004b000002380000613d0000000501100210000000080110002900000000010104330000000e0010006c0000073a0000413d00000007010000290000000001010433000e00000001001d00000ab30100004100000000001004430000000c010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ac401000041000600000002001d000000000012043500000000010004140000000c02000029000000040020008c00001ad40000613d000000060200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f0000000e0000006b00001ac90000c13d00000ac6011001c70000000c0200002900001ace0000013d000000a40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000002402100370000000000202043b000d00000002001d0000000402100370000000000202043b000e00000002001d0000004402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d000b00040020003d0000000b04100360000000000404043b000c00000004001d00000aae0040009c00000f3d0000213d000a00240020003d0000000c0200002900000060022000c90000000a04200029000000000034004b00000f3d0000213d0000006402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d000700000004001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000080010006b000009800000413d0000000c0100002900000005011002100000003f0110003900000abb01100197000000400200043d0000000003120019000000000023004b0000000001000039000000010100403900000aae0030009c000000070a000029000008450000213d0000000100100190000008450000c13d0000000001000031000000400030043f0000000c03000029000000000032043500000000001a004b00000f3d0000213d0000000c0000006b000010630000c13d0000000e0100002929fb1f890000040f000e00000001001d0000000001010433000000000001004b000002380000613d00000005011002100000000e0110002900000000010104330000000d0010006c000011980000813d000000400100043d000000640210003900000ad9030000410000000000320435000000440210003900000ada03000041000000000032043500000024021000390000002203000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000ace011001c7000029fd00010430000000640030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002401100370000000000101043b000d00000001001d00000a830010009c00000f3d0000213d29fb1cf20000040f00000000030100190000000e010000290000000d0200002929fb1db20000040f000000800200043d000000000202043300000a8301100197000000000012043500000a800020009c00000a8002008041000000400120021000000ac0011001c7000029fc0001042e000000e40030008c00000f3d0000413d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000302043b000000000003004b0000000002000039000000010200c039000d00000003001d000000000023004b00000f3d0000c13d000000a402100370000000000202043b000c00000002001d00000a830020009c00000f3d0000213d000000c402100370000000000202043b000b00000002001d0000004402100370000000000202043b000900000002001d0000006402100370000000000202043b000a00000002001d0000008401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b0000000b0010006b000009800000413d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a8302100197000b00000002001d00000000050004160000000e010000290000000d0300002900000009040000290000000a06000029000000080700002929fb24450000040f000a00000001001d000900000002001d0000000e010000290000000b020000290000000d0300002929fb1db20000040f000000000301001900000000020004110000000e01000029000e00000003001d0000000a0400002929fb216c0000040f00000ab30100004100000000001004430000000b010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ac401000041000d00000002001d000000000012043500000000010004140000000b02000029000000040020008c000011140000613d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f000000090000006b000011090000c13d00000ac6011001c70000000b020000290000110e0000013d000001040030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d000000c401100370000000000101043b000b00000001001d00000a830010009c00000f3d0000213d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000e4020000390000000202200367000000000202043b000000000012004b000009800000413d0000000e010000290000000d020000290000000c0300002929fb1db20000040f000000800200043d000000000402043300000aac02000041000000000024043500000064020000390000000202200367000000000202043b00000044034000390000000000230435000000000200041100000a83022001970000000403400039000000000023043500000a8302100197000c00000004001d000000240140003900000000002104350000000001000414000a00000002001d000000040020008c00000e710000c13d0000000103000031000000200030008c0000002004000039000000000403401900000e9c0000013d000000840030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d0000000404200039000000000441034f000000000504043b00000aae0050009c000008450000213d00000005045002100000003f0640003900000abb0660019700000adb0060009c00000a480000a13d00000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd000104300000000001000416000000000001004b00000f3d0000c13d0000000001000412001200000001001d001100200000003d000080050100003900000044030000390000000004000415000000120440008a000008a70000013d000000440030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000002402100370000000000402043b00000aae0040009c00000f3d0000213d0000002302400039000000000032004b00000f3d0000813d0000000402400039000000000121034f000000000201043b000000240140003929fb1d0c0000040f00000004020000390000000202200367000000000202043b00000000030100190000000001020019000000000203001929fb1f890000040f000000800200043d0000000003020433000e00000003001d0000000002010019000000000103001929fb1cfd0000040f0000000e02000029000000000121004900000a800010009c00000a8001008041000000600110021000000a800020009c00000a80020080410000004002200210000000000121019f000029fc0001042e000000440030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000302043b00000a830030009c00000f3d0000213d0000002401100370000000000201043b00000a830020009c00000f3d0000213d000000000103001929fb1e5c0000040f000000800300043d000000000303043300000a83022001970000002004300039000000000024043500000a8301100197000000000013043500000a800030009c00000a80030080410000004001300210000000800200043d00000a800020009c00000a80020080410000006002200210000000000112019f000029fc0001042e0000000001000416000000000001004b00000f3d0000c13d0000000001000412001000000001001d000f00000000003d000080050100003900000044030000390000000004000415000000100440008a000000050440021000000a850200004129fb29d30000040f00000a8301100197000000a00010043f00000ac301000041000029fc0001042e000000e40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000004402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000006402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000008402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d000000a401100370000000000101043b000b00000001001d00000a830010009c00000f3d0000213d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b0000000201000367000000c403100370000000000303043b000000000023004b000009800000413d000000800200043d00000000040204330000000003240019000a00000004001d000000000043004b0000000004000039000000010400403900000aae0030009c000008450000213d0000000100400190000008450000c13d000000000032043500000001020000390000000a030000290000000002230436000000800300043d000000000303043300000abd0030009c000008450000213d0000006004300039000000400040043f000000200430003900000000000404350000000000030435000000800400043d0000000004340019000000000004043500000000003204350000000a040000290000000004040433000000000004004b00000c1e0000613d0000000e0400002900000000004304350000000a030000290000000003030433000000000003004b00000c1e0000613d0000000d0300002900000a83033001970000000004020433000000200440003900000000003404350000000a030000290000000003030433000000000003004b00000c1e0000613d0000000002020433000000800300043d00000000023200190000000c0300002900000000003204350000000401100370000000000101043b0000000a0200002929fb1f890000040f00000000030100190000000001010433000000000001004b000002380000613d00000024020000390000000202200367000000000202043b000d00000002001d000000010210008a0000000001030019000e00000003001d29fb1d840000040f00000000010104330000000d0010006c0000000001000039000000010100803929fb1d910000040f0000000a0100002929fb1d7a0000040f00000000010104330000000001010433000d00000001001d0000000a0100002929fb1d7a0000040f00000000010104330000000001010433000c00000001001d0000000a0100002929fb1d7a0000040f000000000101043300000020011000390000000001010433000900000001001d000000800100043d000800000001001d0000000a0100002929fb1d7a0000040f000000000101043300000008021000290000000c0100002900000a83011001970000000002020433000000000002004b0000000003000039000000010300c039000000090200002900000a830220019729fb1db20000040f000c00000001001d0000000e0100002929fb1d7a0000040f0000000d0200002900000a83032001970000000004010433000000000200041100000000010300190000000c0300002929fb216c0000040f0000000e010000290000000a020000290000000b03000029000011be0000013d000000840030008c00000f3d0000413d0000000402100370000000000202043b000e00000002001d0000002402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b00000f3d0000813d000c00040020003d0000000c04100360000000000404043b000d00000004001d00000aae0040009c00000f3d0000213d000b00240020003d0000000d0200002900000060022000c90000000b02200029000a00000002001d000000000032004b00000f3d0000213d0000004402100370000000000202043b000900000002001d00000a830020009c00000f3d0000213d0000006401100370000000000101043b000800000001001d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000080010006b00000c1c0000813d000000400100043d000000440210003900000ae103000041000000000032043500000024021000390000000f03000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd00010430000000840030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d0000006401100370000000000101043b000b00000001001d00000ad001000041000000a00010043f0000000e01000029000000a40010043f0000000d01000029000000c40010043f0000000c01000029000000e40010043f00000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b000000000100041400000a8302200197000000040020008c00000afe0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000b230000013d000000a40030008c00000f3d0000413d0000000002000416000000000002004b00000f3d0000c13d0000000402100370000000000202043b000e00000002001d00000a830020009c00000f3d0000213d0000002402100370000000000202043b000d00000002001d00000a830020009c00000f3d0000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039000c00000003001d000000000023004b00000f3d0000c13d0000008402100370000000000202043b000a00000002001d0000006401100370000000000101043b000b00000001001d00000ad001000041000000a00010043f0000000e01000029000000a40010043f0000000d01000029000000c40010043f0000000c01000029000000e40010043f00000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b000000000100041400000a8302200197000000040020008c00000b380000c13d0000000104000031000000200040008c000000200400803900000b5d0000013d0000000001028019000000000001004b00000ab50000c13d00000ab701000041000000a00010043f0000002001000039000000a40010043f0000001401000039000000c40010043f00000ab901000041000000e40010043f00000ad101000041000029fd0001043000000a800010009c00000a8001008041000000c00110021000000abf011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000a005700039000000a00a00003900000a280000613d000000000801034f000000008908043c000000000a9a043600000000005a004b00000a240000c13d000000000006004b00000a350000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000adf0000613d0000001f01400039000000600110018f000000a001100039000000400010043f000000200030008c00000f3d0000413d000000a00100043d000000000001004b0000000002000039000000010200c039000000000021004b00000f3d0000c13d000000800200043d0000000002020433000007650000013d000000a006600039000000400060043f000000a00050043f00000024022000390000000004420019000000000034004b00000f3d0000213d000000000005004b00000a580000613d000000c005000039000000000621034f000000000606043b00000000056504360000002002200039000000000042004b00000a520000413d0000002402100370000000000202043b00000aae0020009c00000f3d0000213d0000002304200039000000000034004b000000000500001900000ab10500804100000ab104400197000000000004004b000000000600001900000ab10600404100000ab10040009c000000000605c019000000000006004b00000f3d0000c13d000d00040020003d0000000d04100360000000000404043b000e00000004001d00000aae0040009c00000f3d0000213d000c00240020003d0000000e0200002900000060022000c90000000c02200029000000000032004b00000f3d0000213d0000004401100370000000000101043b000b00000001001d00000a830010009c00000f3d0000213d00000aaa010000410000000000100443000000000100041400000a800010009c00000a8001008041000000c00110021000000aab011001c70000800b0200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b00000002010003670000006403100370000000000303043b000000000023004b000009800000413d0000000e0000006b00000c1e0000613d0000000d020000290000002002200039000000000321034f000000000303043b000d00000003001d00000a830030009c00000f3d0000213d0000002002200039000000000121034f000000000101043b000a00000001001d00000a830010009c00000f3d0000213d000000800100043d0000000c0110002929fb1da80000040f00000000030100190000000d010000290000000a0200002929fb1db20000040f0000000003010019000000a00100043d000000000001004b00000c1e0000613d000000c00400043d00000000020004110000000d0100002929fb216c0000040f00000000030000310000000c010000290000000e0200002929fb1d0c0000040f0000000002010019000000a0010000390000000b0300002929fb21f60000040f000000800100043d0000000001010433000e00000001001d000000a002000039000008730000013d000b00000001001d00000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b000000800100043d000000000501043300000044015000390000000103000039000000000031043500000ad001000041000000000015043500000004015000390000000b0300002900000000003104350000000c030000290000000e0030006b0000000e030020290000002401500039000c00000003001d0000000000310435000000000100041400000a8302200197000000040020008c000a00000002001d00000b7d0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000baa0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ae70000c13d000000000005004b00000af80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd0001043000000a800010009c00000a8001008041000000c00110021000000ad1011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000a00570003900000b120000613d000000a008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000b0e0000c13d000000000006004b00000b1f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000c240000613d0000001f01400039000000600410018f000000a001400039000a00000001001d000000400010043f000000200030008c00000f3d0000413d000000a00100043d000900000001001d00000a830010009c00000f3d0000213d000000090000006b0000000002000019000000000100001900000f3f0000c13d000000800300043d0000000003030433000000200430003900000000001404350000000000230435000008940000013d00000a800010009c00000a8001008041000000c00110021000000ad1011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000a00570003900000b4c0000613d000000a008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000b480000c13d000000000006004b00000b590000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000c300000613d0000001f01400039000000600510018f000000a001500039000000400010043f000000200040008c00000f3d0000413d000000a00300043d00000a830030009c00000f3d0000213d000000000003004b000900000000001d00000000020000190000000001000019000010020000613d000000800100043d000000000201043300000ad201000041000900000002001d00000000001204350000000001000414000000040030008c00000fc30000c13d0000000901500029000000090010006c0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f00000ffb0000013d00000a800050009c00000a80030000410000000003054019000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c7000900000005001d29fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090b000029000000090570002900000b980000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000b940000c13d000000000006004b00000ba50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000cfa0000613d00000000050b00190000001f01400039000000600110018f0000000002510019000000000012004b0000000004000039000000010400403900000aae0020009c000008450000213d0000000100400190000008450000c13d000000400020043f000000200030008c00000f3d0000413d0000000002050433000800000002001d00000a830020009c00000f3d0000213d000000800200043d000000000402043300000abe020000410000000000240435000900000004001d00000004024000390000000804000029000000000042043500000000020004140000000a04000029000000040040008c00000bf40000613d000000090100002900000a800010009c00000a8001008041000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ab0011001c70000000a0200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000be10000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000bdd0000c13d000000000006004b00000bee0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000011440000613d0000001f01400039000000600110018f0000000902100029000000000012004b0000000004000039000000010400403900000aae0020009c000008450000213d0000000100400190000008450000c13d000000400020043f000000200030008c00000f3d0000413d00000009020000290000000002020433000000000002004b0000000004000039000000010400c039000000000042004b00000f3d0000c13d000000000002004b0000151f0000c13d000800000000001d000000800100043d000000000401043300000024014000390000000c02000029000000000021043500000ad001000041000000000014043500000004014000390000000b020000290000000000210435000900000004001d0000004401400039000000000001043500000000010004140000000a02000029000000040020008c000015a60000c13d0000002004000039000015d10000013d0000000d0000006b00000f350000c13d00000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd000104300000001f0530018f00000a8206300198000000400200043d000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c2b0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c380000c13d00000aeb0000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000b0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d0570002900000c570000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b00000c530000c13d000000000006004b00000c640000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000f4e0000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000500000001001d000a00000002001d000000040120003900000000020004100000000000210435000000800100043d000d00000001001d00000000010004140000000b02000029000000040020008c00000cb90000613d0000000a0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000b0200002929fb29f10000040f000000600310027000000a80033001970000000d0030006c0000000d0400002900000000040340190000001f0540018f00000a82064001980000000a0460002900000ca60000613d000000000701034f0000000a08000029000000007907043c0000000008980436000000000048004b00000ca20000c13d000000000005004b00000cb30000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000800400043d000d00000004001d000100000003001f00030000000103550000000100200190000011c60000613d0000000d0030006b00000000020300190000000d020040290000001f0120003900000ae2041001970000000a01400029000000000041004b0000000004000039000000010400403900000aae0010009c000008450000213d0000000100400190000008450000c13d0000000d05000029000000000052004b000000000400001900000ab10400404100000ab10550019700000ab102200197000000000652013f000000000052004b000000000200001900000ab10200204100000ab10060009c000000000204c019000000400010043f000000000002004b00000f3d0000c13d00000007040000290000000e0040006b00000e6e0000613d00000006040000290000000e0400402900000a83024001980000156f0000613d0000000a040000290000000006040433000000050400002900000000040404330000000e0020006b00000000020600190000000002046019000b00000002001d000000000604c019000a00000006001d000000090060006c000016f90000413d0000000b04000029000000080040006c0000176c0000413d0000000d01000029000000000201043300000ab2010000410000000000120435000d00000002001d00000004012000390000000002000410000000000021043500000000010004140000000e02000029000000040020008c000017be0000c13d000000200030008c0000002003008039000017e90000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d020000c13d00000aeb0000013d0000000e01000029000000400110008a0000000201100367000000000101043b000800000001001d00000a830010009c00000f3d0000213d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a8301100197000000080010006b00000fbc0000c13d0000000a0100002900000020021000390000000201000367000000000321034f000000000303043b00000a830030009c000000070400002900000f3d0000213d0000002002200039000000000221034f000000000202043b00000a830020009c00000f3d0000213d0000000005030019000000800300043d0000000003430019000000000131034f000000000301043b000000000003004b0000000001000039000000010100c039000000000013004b00000f3d0000c13d0000000001050019000a00000005001d29fb1db20000040f000000000301001900000000020004110000000a010000290000000d0400002929fb216c0000040f0000000b0100002900000005011002100000003f0110003900000abb02100197000000400100043d0000000003210019000000000013004b0000000002000039000000010200403900000aae0030009c000008450000213d0000000100200190000008450000c13d0000000002000031000000400030043f0000000b0300002900000000003104350000000e0020006b000000070900002900000f3d0000213d000000000a00041000000002030003670000000004010019000000000592004900000abc0050009c00000f3d0000213d000000600050008c00000f3d0000413d000000400500043d00000abd0050009c000008450000213d0000006006500039000000400060043f000000000693034f000000000606043b00000a830060009c00000f3d0000213d00000000076504360000002006900039000000000863034f000000000808043b00000a830080009c00000f3d0000213d00000000008704350000002006600039000000000663034f000000000606043b000000000006004b0000000007000039000000010700c039000000000076004b00000f3d0000c13d000000200440003900000040075000390000000000670435000000000054043500000060099000390000000e0090006c00000d570000413d00000000020a001929fb26820000040f000000800100043d000000000201043300000ab2010000410000000000120435000e00000002001d00000004012000390000000002000410000000000021043500000000010004140000000802000029000000040020008c000019900000c13d0000000104000031000000200040008c0000002004008039000019bb0000013d0000000e0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ab0011001c729fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e0570002900000da60000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b00000da20000c13d000000000006004b00000db30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000f5b0000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000e010000290000000001010433000000800200043d00000000020204330000004003200039000000000013043500000020012000390000000a0300002900000000003104350000000b01000029000000000012043500000a800020009c00000a8002008041000000400120021000000acf011001c7000029fc0001042e0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000b0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d0570002900000dee0000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b00000dea0000c13d000000000006004b00000dfb0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000f680000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000600000001001d000a00000002001d000000040120003900000000020004100000000000210435000000800100043d000d00000001001d00000000010004140000000b02000029000000040020008c00000e500000613d0000000a0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000b0200002929fb29f10000040f000000600310027000000a80033001970000000d0030006c0000000d0400002900000000040340190000001f0540018f00000a82064001980000000a0460002900000e3d0000613d000000000701034f0000000a08000029000000007907043c0000000008980436000000000048004b00000e390000c13d000000000005004b00000e4a0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000800400043d000d00000004001d000100000003001f00030000000103550000000100200190000011d30000613d0000000d0030006b0000000d030040290000001f0130003900000ae2021001970000000a01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d0000000d04000029000000000043004b000000000200001900000ab10200404100000ab10440019700000ab103300197000000000543013f000000000043004b000000000300001900000ab10300204100000ab10050009c000000000302c019000000400010043f000000000003004b00000f3d0000c13d00000007030000290000000e0030006b0000156a0000c13d000000440210003900000aba030000410000104e0000013d0000000c0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000a0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c0570002900000e8b0000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b00000e870000c13d000000000006004b00000e980000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000f750000613d0000001f01400039000000600210018f0000000c01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000c010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000800000001001d000900000002001d00000004012000390000000b020000290000000000210435000000800100043d000c00000001001d00000000010004140000000a02000029000000040020008c00000eed0000613d000000090200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000a0200002929fb29f10000040f000000600310027000000a80033001970000000c0030006c0000000c0400002900000000040340190000001f0540018f00000a8206400198000000090460002900000eda0000613d000000000701034f0000000908000029000000007907043c0000000008980436000000000048004b00000ed60000c13d000000000005004b00000ee70000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000800400043d000c00000004001d0000000100200190000011e00000613d0000000c0030006b0000000c030040290000001f0130003900000ae2021001970000000901200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d0000000c04000029000000000043004b000000000200001900000ab10200404100000ab10440019700000ab103300197000000000543013f000000000043004b000000000300001900000ab10300204100000ab10050009c000000000302c019000000400010043f000000000003004b00000f3d0000c13d00000009010000290000000001010433000b00000001001d00000008010000290000000001010433000c00000001001d0000000e010000290000000d0200002929fb1e5c0000040f0000000e0110014f000d0a830010019c00000084010000390000000201100367000000000101043b0000000c0300002900000000020300190000000b02006029000e00000002001d000000000012004b0000000001000039000000010100803929fb1d520000040f0000000d0000006b0000000b0100002900000000020100190000000c02006029000c00000002001d000000a4010000390000000201100367000000000101043b000000000012004b0000000001000039000000010100803929fb1d660000040f000000800100043d000000000101043300000020021000390000000c0300002900000000003204350000000e02000029000000000021043500000a800010009c00000a80010080410000004001100210000008970000013d0000000c010000290000002001100039000800000001001d0000000201100367000000000101043b000c00000001001d00000a830010009c00000f820000a13d0000000001000019000029fd00010430000000e401400039000000c402400039000000a4034000390000000d050000290000000e0050006b000010520000c13d00000ab7040000410000000a050000290000000000450435000000200400003900000000004304350000001b03000039000000000032043500000aba020000410000105f0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f560000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f630000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f700000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f7d0000c13d00000aeb0000013d00000a850100004100000000001004430000000001000412000000040010044300000020010000390000002400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b00000a83011001970000000c0010006b00000fbc0000c13d00000ab30100004100000000001004430000000c010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ac401000041000700000002001d000000000012043500000000010004140000000c02000029000000040020008c000017070000613d000000070200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f0000000002000416000000000002004b000016fc0000c13d00000ac6011001c70000000c02000029000017010000013d000000400100043d000000440210003900000ae003000041000000000032043500000024021000390000001403000039000009860000013d000000090200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac6011001c7000000000203001929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000fdd0000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000fd90000c13d000000000006004b00000fea0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000010af0000613d0000001f01400039000000600210018f0000000901200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d00000009010000290000000001010433000900000001001d0000000e010000290000000d020000290000000c0300002929fb1e800000040f00000000002101a0000010490000c13d0000000b0000006b000002380000613d0000000a020000290000000b012000ba000002380000613d0000000b021000fa0000000a0020006c000002380000c13d00000ad50010009c000000000301001900000080033082700000008002000039000000000200403900000ad60030009c00000040022081bf000000400330827000000ad70030009c00000020022081bf000000200330827000000ad80030009c00000010022081bf0000001003308270000001000030008c00000008022080390000000803308270000000100030008c00000004022080390000000403308270000000040030008c00000002022080390000000203308270000000010030008c00000001022020390000000102200270000000000321022f000000010220020f00000000023200190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000010430000613d00000000032100d900000000022300190000000102200272000018500000c13d00000adc01000041000000000010043f0000001201000039000000040010043f00000ab001000041000029fd000104300000000b0000006b0000108b0000c13d000000400100043d000000440210003900000ad403000041000000000032043500000024021000390000001b03000039000009860000013d0000000d0500002900000000040500190000000e04004029000000000004004b000010bc0000c13d00000ab7040000410000000a050000290000000000450435000000200400003900000000004304350000001403000039000000000032043500000ab9020000410000000000210435000000400150021000000aad011001c7000029fd00010430000000020300036700000000040200190000000a05000029000000000651004900000abc0060009c00000f3d0000213d000000600060008c00000f3d0000413d000000400600043d00000abd0060009c000008450000213d0000006007600039000000400070043f000000000753034f000000000707043b00000a830070009c00000f3d0000213d00000000087604360000002007500039000000000973034f000000000909043b00000a830090009c00000f3d0000213d00000000009804350000002007700039000000000773034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b00000f3d0000c13d000000200440003900000040086000390000000000780435000000000064043500000060055000390000000000a5004b000010660000413d0000072f0000013d000000000001004b0000113d0000613d000000000002004b0000113d0000613d0000000b042000b90000000b034000fa000000000023004b000002380000c13d00000000031400d90000000a0030006c000012ca0000a13d0000000a0000006b0000104b0000613d0000000a041000b90000000a034000fa000000000013004b000002380000c13d00000000032400d9000b00000003001d00000009033000b9000000000042004b000010a40000213d0000000b043000fa000000090040006c000002380000c13d00000009060000290000000a046000b90000000a054000fa000000000065004b000002380000c13d00000000022400d900000000011300d9000000000021004b00000000010280190000000a03000029000012d90000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010b70000c13d00000aeb0000013d00000ad0050000410000000a06000029000000000056043500000000004304350000000d040000290000000e0040006b00000000030400190000000e0300202900000000003204350000000c02000029000000000021043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001bdf0000613d000000000201043b000000000100041400000a8302200197000000040020008c000011ed0000c13d0000000103000031000000200030008c00000020040000390000000004034019000012150000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010e80000c13d00000aeb0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010f60000c13d00000aeb0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011040000c13d00000aeb0000013d00000ac5011001c7000080090200003900000009030000290000000b04000029000000000500001929fb29f10000040f0003000000010355000000600310027000010a800030019d00000001002001900000112f0000613d0000000d0100002900000aae0010009c000008450000213d0000000d01000029000000400010043f000000800100043d000000000301043300000024013000390000000902000029000000000021043500000ac70100004100000000001304350000000e0100002900000a8302100197000d00000003001d0000000401300039000e00000002001d000000000021043500000000010004140000000b02000029000000040020008c000011510000c13d0000000104000031000000200040008c000000200300003900000000030440190000117c0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011380000c13d00000aeb0000013d000000400100043d000000440210003900000ad303000041000000000032043500000024021000390000001e03000039000009860000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000114c0000c13d00000aeb0000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac8011001c70000000b0200002929fb29f10000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000d057000290000116b0000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b000011670000c13d000000000006004b000011780000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f000300000001035500000001002001900000122b0000613d0000001f01300039000000600110018f0000000d02100029000000000012004b0000000005000039000000010500403900000aae0020009c000008450000213d0000000100500190000008450000c13d000000400020043f000000200040008c00000f3d0000413d0000000d020000290000000002020433000000000002004b0000000005000039000000010500c039000000000052004b00000f3d0000c13d000000000002004b0000164a0000c13d00000adc01000041000000000010043f0000000101000039000000040010043f00000ab001000041000029fd000104300000000c0000006b00000c1e0000613d0000000b0100002900000020021000390000000201000367000000000321034f000000000303043b000d00000003001d00000a830030009c00000f3d0000213d0000002002200039000000000121034f000000000101043b000b00000001001d00000a830010009c00000f3d0000213d000000800100043d0000000a0110002929fb1da80000040f00000000030100190000000d010000290000000b0200002929fb1db20000040f000b00000001001d0000000e0100002929fb1d7a0000040f000000000401043300000000020004110000000d010000290000000b0300002929fb216c0000040f00000000030000310000000a010000290000000c0200002929fb1d0c0000040f00000000020100190000000e01000029000000090300002929fb21f60000040f000000800100043d0000000001010433000d00000001001d0000000e0200002929fb1cfd0000040f0000000d02000029000008750000013d0000001f0530018f0000000d02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011ce0000c13d00000aeb0000013d0000001f0530018f0000000d02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011db0000c13d00000aeb0000013d0000001f0530018f0000000c02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011e80000c13d00000aeb0000013d00000a800010009c00000a8001008041000000c0011002100000000a030000290000004003300210000000000131019f00000aad011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a05700029000012040000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b000012000000c13d000000000006004b000012110000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000015130000613d0000001f01400039000000600110018f0000000a01100029000c00000001001d000000400010043f000000200030008c00000f3d0000413d0000000a01000029000000000201043300000a830020009c00000f3d0000213d00000ade010000410000000c040000290000000001140436000a00000001001d0000000001000414000000040020008c0000169f0000c13d000000600030008c00000060040000390000000004034019000016c70000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000012330000c13d000000000005004b000012440000613d000000000161034f0000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000130435000000600140021000000af90000013d0000000d0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ab0011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d057000290000125f0000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b0000125b0000c13d000000000006004b0000126c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000015720000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200040008c00000f3d0000413d0000000b0200002900000005022002100000003f0220003900000abb02200197000000000321001900000aae0030009c000008450000213d00000000020000310000000d040000290000000004040433000d00000004001d000000400030043f0000000b0300002900000000003104350000000e0020006b000000070900002900000f3d0000213d00000002030003670000000004010019000000000592004900000abc0050009c00000f3d0000213d000000600050008c00000f3d0000413d000000400500043d00000abd0050009c000008450000213d0000006006500039000000400060043f000000000693034f000000000606043b00000a830060009c00000f3d0000213d00000000076504360000002006900039000000000863034f000000000808043b00000a830080009c00000f3d0000213d00000000008704350000002006600039000000000663034f000000000606043b000000000006004b0000000007000039000000010700c039000000000076004b00000f3d0000c13d000000200440003900000040075000390000000000670435000000000054043500000060099000390000000e0090006c000012900000413d000000090200002929fb26820000040f0000000a010000290000000201100367000000000201043b00000a830020009c00000f3d0000213d000000800100043d000000000301043300000ab2010000410000000000130435000e00000003001d0000000401300039000000090300002900000000003104350000000001000414000000040020008c00001a870000c13d0000000104000031000000200040008c000000200400803900001ab10000013d00000009070000290000000b057000b90000000b065000fa000000000076004b000002380000c13d00000009063000b9000000000041004b000012d50000213d00000000043600d9000000090040006c000002380000c13d00000000011500d900000000022600d9000000000021004b0000000001028019000000800200043d000000000202043300000040042000390000000000140435000000200120003900000dcc0000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000c0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d05700029000012f90000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b000012f50000c13d000000000006004b000013060000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000157f0000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000700000001001d000800000002001d000000040120003900000000020004100000000000210435000000800100043d000d00000001001d00000000010004140000000c02000029000000040020008c0000135b0000613d000000080200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000c0200002929fb29f10000040f000000600310027000000a80033001970000000d0030006c0000000d0400002900000000040340190000001f0540018f00000a82064001980000000804600029000013480000613d000000000701034f0000000808000029000000007907043c0000000008980436000000000048004b000013440000c13d000000000005004b000013550000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000800400043d000d00000004001d0000000100200190000018360000613d0000000d0030006b0000000d030040290000001f0130003900000ae2021001970000000801200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d0000000d04000029000000000043004b000000000200001900000ab10200404100000ab10440019700000ab103300197000000000543013f000000000043004b000000000300001900000ab10300204100000ab10050009c000000000302c019000000400010043f000000000003004b00000f3d0000c13d00000002030000290000000e0030006b00000e6e0000613d000000020300002900000000020300190000000e02004029000000000002004b0000156f0000613d000000080200002900000000020204330000000703000029000000000503043300000002040000290000000e0040006b00000000030500190000000003022019000d00000003001d000000000502a019000c00000005001d0000000b0050006c000016f90000413d0000000d030000290000000a0030006c0000176c0000413d0000000e0100002900000009020000290000000c0300002929fb294d0000040f00000ab301000041000000000010044300000002010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000e00000002001d00000004012000390000000d02000029000000000021043500000000010004140000000202000029000000040020008c000013be0000613d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000020200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001c710000613d0000000e0100002900000aae0010009c000008450000213d0000000e01000029000000400010043f00000009010000290000000d0200002929fb23e10000040f000000800100043d000000000101043300000020021000390000000d0300002900000000003204350000000c0200002900000f300000013d0000000c0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000b0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c05700029000013e70000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b000013e30000c13d000000000006004b000013f40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000158c0000613d0000001f01400039000000600210018f0000000c01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000c010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000800000001001d000900000002001d00000004012000390000000a020000290000000000210435000000800100043d000c00000001001d00000000010004140000000b02000029000000040020008c00000eed0000613d000000090200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000b0200002929fb29f10000040f000000600310027000000a80033001970000000c0030006c0000000c0400002900000000040340190000001f0540018f00000a82064001980000000904600029000014360000613d000000000701034f0000000908000029000000007907043c0000000008980436000000000048004b000014320000c13d000000000005004b000014430000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000800400043d000c00000004001d000100000003001f0003000000010355000000010020019000000eed0000c13d0000001f0530018f0000000c02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014510000c13d00000aeb0000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000c0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d05700029000014700000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b0000146c0000c13d000000000006004b0000147d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000015990000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d010000290000000001010433000000000001004b0000000002000039000000010200c03900000f3d0000613d000000000021004b00000f3d0000c13d000000800100043d000000000201043300000aaf010000410000000001120436000700000001001d000800000002001d000000040120003900000000020004100000000000210435000000800100043d000d00000001001d00000000010004140000000c02000029000000040020008c000014d20000613d000000080200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000c0200002929fb29f10000040f000000600310027000000a80033001970000000d0030006c0000000d0400002900000000040340190000001f0540018f00000a82064001980000000804600029000014bf0000613d000000000701034f0000000808000029000000007907043c0000000008980436000000000048004b000014bb0000c13d000000000005004b000014cc0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000800400043d000d00000004001d000100000003001f00030000000103550000000100200190000018430000613d0000000d0030006b00000000020300190000000d020040290000001f0120003900000ae2041001970000000801400029000000000041004b0000000004000039000000010400403900000aae0010009c000008450000213d0000000100400190000008450000c13d0000000d05000029000000000052004b000000000400001900000ab10400404100000ab10550019700000ab102200197000000000652013f000000000052004b000000000200001900000ab10200204100000ab10060009c000000000204c019000000400010043f000000000002004b00000f3d0000c13d00000002040000290000000e0040006b00000e6e0000613d00000001040000290000000e0400402900000a83024001980000156f0000613d00000008040000290000000006040433000000070400002900000000040404330000000e0020006b00000000020600190000000002046019000c00000002001d000000000604c019000800000006001d0000000b0060006c000016f90000413d0000000c040000290000000a0040006c0000176c0000413d0000000d01000029000000000201043300000ab2010000410000000000120435000d00000002001d00000004012000390000000002000410000000000021043500000000010004140000000e02000029000000040020008c00001b670000c13d000000200030008c000000200300803900001b920000013d0000001f0530018f00000a8206300198000000400200043d000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000151a0000c13d00000aeb0000013d000000800200043d000000000502043300000024025000390000000e04000029000000000042043500000add020000410000000000250435000900000005001d00000004025000390000000d04000029000000000042043500000000020004140000000804000029000000040040008c0000155b0000613d000000090100002900000a800010009c00000a8001008041000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ac8011001c7000000080200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000905700029000015480000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000015440000c13d000000000006004b000015550000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000017500000613d0000001f01400039000000600110018f0000000902100029000000000012004b0000000001000039000000010100403900000aae0020009c000008450000213d0000000100100190000008450000c13d000000400020043f000000200030008c00000f3d0000413d00000009010000290000000001010433000800000001001d00000c090000013d000000070300002900000000020300190000000e02004029000000000002004b000016ec0000c13d000000440210003900000ab90300004100000fbf0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000157a0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015870000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015940000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015a10000c13d00000aeb0000013d000000090200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c70000000a0200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000905700029000015c00000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000015bc0000c13d000000000006004b000015cd0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000017430000613d0000001f01400039000000600510018f0000000902500029000000000052004b0000000005000039000000010500403900000aae0020009c000008450000213d0000000100500190000008450000c13d000000400020043f000000200030008c00000f3d0000413d00000009020000290000000002020433000b00000002001d00000a830020009c00000f3d0000213d000000800200043d000000000302043300000abe020000410000000000230435000c00000003001d00000004023000390000000b03000029000000000032043500000000020004140000000a03000029000000040030008c0000161b0000613d0000000c0100002900000a800010009c00000a8001008041000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ab0011001c70000000a0200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c05700029000016090000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b000016050000c13d000000000006004b000016160000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000193d0000613d0000001f0140003900000ae2011001970000000c02100029000000000012004b0000000003000039000000010300403900000aae0020009c000008450000213d0000000100300190000008450000c13d000000400020043f000000200040008c00000f3d0000413d0000000c020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b00000f3d0000c13d000000000002004b000000000200001900001b5c0000613d000000800200043d000000000402043300000024024000390000000e03000029000000000032043500000add020000410000000000240435000c00000004001d00000004024000390000000d03000029000000000032043500000000020004140000000b03000029000000040030008c00001b220000c13d0000000c011000290000000c0010006c0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f00001b5a0000013d000000800200043d000000000502043300000ac9020000410000000000250435000d00000005001d00000004025000390000000c05000029000000000052043500000000020004140000000e05000029000000040050008c000016830000613d0000000d0100002900000a800010009c00000a8001008041000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ab0011001c70000000e0200002929fb29f10000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000d05700029000016700000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b0000166c0000c13d000000000006004b0000167d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f00030000000103550000000100200190000017720000613d0000001f01300039000000600110018f0000000d02100029000000000012004b0000000001000039000000010100403900000aae0020009c000008450000213d0000000100100190000008450000c13d000000400020043f000000200030008c00000f3d0000413d0000000d010000290000000001010433000e00000001001d0000000003000416000000090330006c00001a470000a13d00000aca0020009c000008450000213d0000002001200039000000400010043f000000000002043500000000010004140000000002000411000000040020008c00001a110000c13d000000010200003900001a1d0000013d00000a800010009c00000a8001008041000000c0011002100000000c030000290000004003300210000000000131019f00000ac6011001c729fb29f60000040f000000600310027000000a8003300197000000600030008c000000600400003900000000040340190000001f0640018f00000060074001900000000c05700029000016b60000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b000016b20000c13d000000000006004b000016c30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000175d0000613d0000001f01400039000000e00110018f0000000c01100029000800000001001d000000400010043f000000600030008c00000f3d0000413d0000000c01000029000000000101043300000adf0010009c00000f3d0000213d0000000a02000029000000000202043300000adf0020009c00000f3d0000213d00000000040200190000000c020000290000004002200039000000000202043300000a800020009c00000f3d0000213d0000000d030000290000000e0030006b00000000020400190000000002012019000d00000002001d000000000401a019000e00000004001d00000ad2010000410000000802000029000000000212043600000000010004140000000903000029000000040030008c0000194a0000c13d000000400020043f000019790000013d0000000a0200002900000000020204330000000603000029000000000503043300000007040000290000000e0040006b00000000030500190000000003022019000d00000003001d000000000502a019000b00000005001d000000090050006c000017690000813d000000440210003900000ab8030000410000176e0000013d00000ac5011001c7000080090200003900000000030004160000000c04000029000000000500001929fb29f10000040f0003000000010355000000600310027000010a800030019d0000000100200190000017350000613d000000070100002900000aae0010009c000008450000213d0000000701000029000000400010043f00000002030003670000000801300360000000000101043b00000a830010009c00000f3d0000213d00000008020000290000002002200039000000000223034f000000000202043b00000a830020009c00000f3d0000213d000000800400043d0000000b04400029000000000343034f000000000303043b000000000003004b0000000004000039000000010400c039000000000043004b00000f3d0000c13d29fb1db20000040f000000800200043d000000000302043300000ac702000041000000000023043500000a830110019700000004023000390000000000120435000800000003001d00000024013000390000000002000416000000000021043500000000010004140000000c02000029000000040020008c000018570000c13d0000000104000031000000200040008c00000020030000390000000003044019000018820000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000173e0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000174b0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017580000c13d00000aeb0000013d0000001f0530018f00000a8206300198000000400200043d000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017640000c13d00000aeb0000013d0000000d03000029000000080030006c0000177f0000813d000000440210003900000ab603000041000000000032043500000024021000390000001d03000039000009860000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b0000177a0000c13d000012370000013d0000000e010000290000000c020000290000000b0300002929fb294d0000040f00000ab301000041000000000010044300000007010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000e00000002001d00000004012000390000000d02000029000000000021043500000000010004140000000702000029000000040020008c000017af0000613d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000070200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001a790000613d0000000e0100002900000aae0010009c000008450000213d0000000e01000029000000400010043f0000000c010000290000000d0200002929fb23e10000040f000000800100043d000000000101043300000020021000390000000d0300002900000000003204350000000b0200002900000f300000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000e0200002929fb29f60000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000d05700029000017d80000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b000017d40000c13d000000000006004b000017e50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f00030000000103550000000100200190000019300000613d0000001f01300039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d0100002900000000030104330000000e010000290000000c0200002929fb294d0000040f00000ab301000041000000000010044300000007010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000e00000002001d00000004012000390000000b02000029000000000021043500000000010004140000000702000029000000040020008c000018270000613d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000070200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001be00000613d0000000e0100002900000aae0010009c000008450000213d0000000e01000029000000400010043f0000000c010000290000000b0200002929fb23e10000040f000000800100043d000000000101043300000020021000390000000b0300002900000000003204350000000a0200002900000f300000013d0000001f0530018f0000000d02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000183e0000c13d00000aeb0000013d0000001f0530018f0000000d02000029000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000184b0000c13d00000aeb0000013d00000000012100d9000000000012004b0000000002018019000003e80120008c000002380000413d0000000a03000029000012d90000013d000000080200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac8011001c70000000c0200002929fb29f10000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000805700029000018710000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b0000186d0000c13d000000000006004b0000187e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f00030000000103550000000100200190000019830000613d0000001f01300039000000600510018f0000000801500029000000000051004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200040008c00000f3d0000413d00000008010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b00000f3d0000c13d000000000001004b000011920000613d0000000a01000029000000400110008a000800000001001d0000000201100367000000000201043b00000a830020009c00000f3d0000213d000000800100043d000000000401043300000ab2010000410000000000140435000c00000004001d0000000401400039000000090400002900000000004104350000000001000414000000040020008c000018d60000613d0000000c0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ab0011001c729fb29f60000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000c05700029000018c30000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b000018bf0000c13d000000000006004b000018d00000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f0003000000010355000000010020019000001c080000613d0000001f01300039000000600510018f0000000c01500029000000000051004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d0200002900000005022002100000003f0220003900000abb02200197000000000321001900000aae0030009c000008450000213d00000000020000310000000c040000290000000004040433000c00000004001d000000400030043f0000000d0300002900000000003104350000000a0020006b00000f3d0000213d000000020300036700000000040100190000000b0520006a00000abc0050009c00000f3d0000213d000000600050008c00000f3d0000413d000000400500043d00000abd0050009c000008450000213d0000006006500039000000400060043f0000000b06300360000000000606043b00000a830060009c00000f3d0000213d00000000076504360000000b060000290000002006600039000000000863034f000000000808043b00000a830080009c00000f3d0000213d00000000008704350000002006600039000000000663034f000000000606043b000000000006004b0000000007000039000000010700c039000000000076004b00000f3d0000c13d00000020044000390000004007500039000000000067043500000000005404350000000b050000290000006005500039000b00000005001d0000000a0050006c000018f30000413d000000090200002929fb26820000040f00000008010000290000000201100367000000000201043b00000a830020009c00000f3d0000213d000000800100043d000000000301043300000ab2010000410000000000130435000d00000003001d0000000401300039000000090300002900000000003104350000000001000414000000040020008c00001ca80000c13d0000000104000031000000200040008c000000200400803900001cd20000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000019380000c13d000012370000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019450000c13d00000aeb0000013d00000a800010009c00000a8001008041000000c00110021000000008020000290000004002200210000000000121019f00000ac6011001c7000000090200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000805700029000019620000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b0000195e0000c13d000000000006004b0000196f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001a560000613d0000001f01400039000000600110018f0000000801100029000000400010043f000000200030008c00000f3d0000413d000000080100002900000000010104330000000b0000006b00001a030000c13d000000000001004b00000000030000190000000002000019000010430000613d00000000011300d900000b320000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b0000198b0000c13d000012370000013d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000080200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e05700029000019aa0000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b000019a60000c13d000000000006004b000019b70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001a620000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200040008c00000f3d0000413d0000000e020000290000000003020433000e00000003001d0000000c0030006c0000073b0000413d00000ab301000041000000000010044300000008010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000d00000002001d00000004012000390000000e02000029000000000021043500000000010004140000000802000029000000040020008c000019f90000613d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000080200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001c150000613d0000000d0100002900000aae0010009c000008450000213d0000000d01000029000000400010043f00000009010000290000000e0200002929fb23e10000040f0000000001000019000029fc0001042e0000000e040000290000000b024000b90000000b032000fa000000000043004b000002380000c13d000000000001004b000010430000613d0000000d050000290000000b035000b90000000b043000fa000000000054004b000002380000c13d00000000021200d9000019810000013d00000a800010009c00000a8001008041000000c00110021000000acb011001c700008009020000390000000004000411000000000500001929fb29f10000040f0003000000010355000000600110027000010a800010019d00000a8004100197000000000004004b00001a450000613d0000001f0340003900000ae2033001970000003f0330003900000ae205300197000000400300043d0000000005530019000000000035004b0000000006000039000000010600403900000aae0050009c000008450000213d0000000100600190000008450000c13d000000400050043f000000000643043600000ae2034001980000001f0440018f0000000001360019000000030500036700001a380000613d000000000705034f000000007807043c0000000006860436000000000016004b00001a340000c13d000000000004004b00001a450000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000010020019000001a6f0000613d000000800100043d000000000101043300000040021000390000000e0300002900000000003204350000002002100039000000090300002900000000003204350000000a02000029000000000021043500000a800010009c00000a8001008041000000400110021000000acf011001c7000029fc0001042e0000001f0530018f00000a8206300198000000400200043d000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a5d0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a6a0000c13d00000aeb0000013d000000400100043d000000640210003900000acc030000410000000000320435000000440210003900000acd03000041000000000032043500000024021000390000002303000039000007430000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a820000c13d00000aeb0000013d0000000e0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ab0011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e0570002900001aa00000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b00001a9c0000c13d000000000006004b00001aad0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001b150000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200040008c00000f3d0000413d0000000e0100002900000000010104330000000d0110006c000002380000413d0000000c02000029000000000021004b0000000001000039000000010100803929fb1d910000040f0000000001000019000029fc0001042e00000ac5011001c700008009020000390000000e030000290000000c04000029000000000500001929fb29f10000040f0003000000010355000000600310027000010a800030019d000000010020019000001b070000613d000000060100002900000aae0010009c000008450000213d0000000601000029000000400010043f00000002030003670000000901300360000000000101043b00000a830010009c00000f3d0000213d00000009020000290000002002200039000000000223034f000000000202043b00000a830020009c00000f3d0000213d000000800400043d0000000b04400029000000000343034f000000000303043b000000000003004b0000000004000039000000010400c039000000000043004b00000f3d0000c13d29fb1db20000040f00000008020000290000000002020433000000000002004b00000c1e0000613d00000007020000290000000002020433000000800300043d00000000040304330000002403400039000000000023043500000ac702000041000000000024043500000a8301100197000e00000004001d0000000402400039000000000012043500000000010004140000000c02000029000000040020008c00001c230000c13d0000000103000031000000200030008c0000002004000039000000000403401900001c4e0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001b100000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001b1d0000c13d00000aeb0000013d0000000c0100002900000a800010009c00000a8001008041000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ac8011001c70000000b0200002929fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c0570002900001b3c0000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b00001b380000c13d000000000006004b00001b490000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001bee0000613d0000001f01400039000000600210018f0000000c01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000c010000290000000002010433000000800100043d0000000001010433000000080020006b000000000300003900000001030020390000002004100039000000000034043500000000050200190000000805002029000000000051043500000f310000013d0000000d0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c70000000e0200002929fb29f60000040f000000600310027000000a8004300197000000200040008c000000200300003900000000030440190000001f0630018f00000020073001900000000d0570002900001b810000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b00001b7d0000c13d000000000006004b00001b8e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000004001f0003000000010355000000010020019000001bfb0000613d0000001f01300039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000d0100002900000000030104330000000e01000029000000090200002929fb294d0000040f00000ab301000041000000000010044300000002010000290000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f000000010020019000001bdf0000613d000000000101043b000000000001004b00000f3d0000613d000000800100043d000000000201043300000ab5010000410000000000120435000e00000002001d00000004012000390000000c02000029000000000021043500000000010004140000000202000029000000040020008c00001bd00000613d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000020200002929fb29f10000040f000000600310027000010a800030019d0003000000010355000000010020019000001c8c0000613d0000000e0100002900000aae0010009c000008450000213d0000000e01000029000000400010043f00000009010000290000000c0200002929fb23e10000040f000000800100043d000000000101043300000020021000390000000c030000290000000000320435000000080200002900000f300000013d000000000001042f00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001be90000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001bf60000c13d00000aeb0000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00001c030000c13d000012370000013d0000001f0540018f000000800200043d000000000202043300000a82064001980000000003620019000012370000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b00001c100000c13d000012370000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c1e0000c13d00000aeb0000013d0000000e0200002900000a800020009c00000a8002008041000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac8011001c70000000c0200002929fb29f10000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e0570002900001c3d0000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b00001c390000c13d000000000006004b00001c4a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001c7f0000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200030008c00000f3d0000413d0000000e010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b00000f3d0000c13d000000000001004b000011920000613d00000000030000310000000b010000290000000d0200002929fb1d0c0000040f000000000201001900000008010000290000000a0300002929fb21f60000040f000000800100043d0000000001010433000e00000001001d0000000802000029000008730000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c7a0000c13d00000aeb0000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c870000c13d00000aeb0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c950000c13d00000aeb0000013d00000a80033001970000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ca30000c13d00000aeb0000013d0000000d0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ab0011001c729fb29f60000040f000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000d0570002900001cc10000613d000000000801034f0000000d09000029000000008a08043c0000000009a90436000000000059004b00001cbd0000c13d000000000006004b00001cce0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001ce50000613d0000001f01400039000000600210018f0000000d01200029000000000021004b0000000002000039000000010200403900000aae0010009c000008450000213d0000000100200190000008450000c13d000000400010043f000000200040008c00000f3d0000413d0000000d0100002900000000010104330000000c0110006c000002380000413d0000000e0200002900001ac30000013d0000001f0530018f000000800200043d000000000202043300000a8206300198000000000462001900000aeb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ced0000c13d00000aeb0000013d00000044010000390000000201100367000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b00001cfb0000c13d000000000001042d0000000001000019000029fd0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b00001d0b0000613d00000000040000190000002002200039000000000502043300000000015104360000000104400039000000000034004b00001d050000413d000000000001042d00000ad60020009c00001d4c0000813d00000005042002100000003f0440003900000abb05400197000000400400043d0000000005540019000000000045004b0000000006000039000000010600403900000aae0050009c00001d4c0000213d000000010060019000001d4c0000c13d000000400050043f000000000024043500000060022000c90000000002120019000000000032004b00001d4a0000213d000000000012004b00001d480000a13d00000002050003670000000006040019000000000713004900000abc0070009c00001d4a0000213d000000600070008c00001d4a0000413d000000400700043d00000abd0070009c00001d4c0000213d0000006008700039000000400080043f000000000815034f000000000808043b00000a830080009c00001d4a0000213d00000000098704360000002008100039000000000a85034f000000000a0a043b00000a8300a0009c00001d4a0000213d0000000000a904350000002008800039000000000885034f000000000808043b000000000008004b0000000009000039000000010900c039000000000098004b00001d4a0000c13d00000020066000390000004009700039000000000089043500000000007604350000006001100039000000000021004b00001d240000413d0000000001040019000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000000001004b00001d550000613d000000000001042d000000400100043d000000440210003900000ab803000041000000000032043500000024021000390000001d03000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd00010430000000000001004b00001d690000613d000000000001042d000000400100043d000000440210003900000ab603000041000000000032043500000024021000390000001d03000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd000104300000000012010434000000000002004b00001d7e0000613d000000000001042d00000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd000104300000000003010433000000000023004b00001d8b0000a13d000000050220021000000000012100190000002001100039000000000001042d00000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd00010430000000000001004b00001d940000613d000000000001042d000000400100043d000000640210003900000ad9030000410000000000320435000000440210003900000ada03000041000000000032043500000024021000390000002203000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000ace011001c7000029fd000104300000000201100367000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b00001db00000c13d000000000001042d0000000001000019000029fd000104300001000000000002000000400a00043d0000004404a000390000002405a000390000000406a0003900000a830710019700000a8308200197000000000087004b00001e220000613d0000000009020019000000000901401900000a830990019800001e2a0000613d000000000087004b000000000201801900000ad00100004100010000000a001d00000000001a0435000000000096043500000a83012001970000000000150435000000000003004b0000000001000039000000010100c039000000000014043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001e370000613d000000000201043b000000000100041400000a8302200197000000040020008c00001de40000c13d0000000103000031000000200030008c00000020040000390000000004034019000000010b00002900001e0f0000013d000000010300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f000000010b000029000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001dfe0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001dfa0000c13d000000000006004b00001e0b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001e3e0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b0000000002000039000000010200403900000aae0010009c00001e380000213d000000010020019000001e380000c13d000000400010043f0000001f0030008c00001e200000a13d00000000010b043300000a830010009c00001e200000213d000000000001042d0000000001000019000029fd0001043000000ab70100004100000000001a0435000000200100003900000000001604350000001b01000039000000000015043500000aba0100004100001e310000013d00000ab70100004100000000001a0435000000200100003900000000001604350000001401000039000000000015043500000ab901000041000000000014043500000a8000a0009c00000a800a0080410000004001a0021000000aad011001c7000029fd00010430000000000001042f00000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd000104300000001f0530018f00000a8206300198000000400200043d000000000462001900001e490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e450000c13d000000000005004b00001e560000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd0001043000000a830410019700000a8305200197000000000054004b00001e680000613d0000000003020019000000000301401900000a830030019800001e6f0000613d000000000054004b00000000020180190000000001030019000000000001042d000000400100043d000000440210003900000aba03000041000000000032043500000024021000390000001b0300003900001e750000013d000000400100043d000000440210003900000ab903000041000000000032043500000024021000390000001403000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd000104300004000000000002000000400a00043d0000004409a000390000002404a000390000000405a0003900000a830610019700000a8307200197000000000076004b00001f490000613d00000000080200190000000008014019000200000008001d00000a830880019800001f510000613d000000000076004b000300000001001d000000000201801900000ad00600004100040000000a001d00000000006a0435000000000085043500000a83022001970000000000240435000000000003004b0000000002000039000000010200c039000000000029043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f000000010020019000001f5e0000613d000000000201043b000000000100041400000a8302200197000000040020008c00001eb50000c13d0000000103000031000000200030008c000000200400003900000000040340190000000305000029000000040b00002900001ee10000013d000000040300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f000000040b000029000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001ecf0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001ecb0000c13d000000000006004b00001edc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000000030500002900001f5f0000613d0000001f01400039000000600110018f000000000cb1001900000000001c004b0000000001000039000000010100403900000aae00c0009c00001f430000213d000000010010019000001f430000c13d0000004000c0043f0000001f0030008c00001f410000a13d00000000020b043300000a830020009c00001f410000213d00000ade0100004100000000061c04360000000001000414000000040020008c00001efa0000c13d000000600030008c0000006004000039000000000403401900001f290000013d000100000006001d00000a8000c0009c00000a800300004100000000030c4019000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ac6011001c700040000000c001d29fb29f60000040f000000040c000029000000600310027000000a8003300197000000600030008c000000600400003900000000040340190000001f0640018f000000600740019000000000057c001900001f160000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001f120000c13d000000000006004b00001f230000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000000030500002900001f6b0000613d00000001060000290000001f01400039000000e00110018f0000000001c1001900000aae0010009c00001f430000213d000000400010043f000000600030008c00001f410000413d00000000030c043300000adf0030009c00001f410000213d000000000206043300000adf0020009c00001f410000213d0000004001c00039000000000101043300000a800010009c00001f410000213d000000020150014f00000a830010019800000000010200190000000001036019000000000203c019000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd0001043000000ab70200004100000000002a0435000000200200003900000000002504350000001b02000039000000000024043500000aba0200004100001f580000013d00000ab70200004100000000002a0435000000200200003900000000002504350000001402000039000000000024043500000ab902000041000000000029043500000a8000a0009c00000a800a0080410000004001a0021000000aad011001c7000029fd00010430000000000001042f0000001f0530018f00000a8206300198000000400200043d000000000462001900001f760000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f660000c13d00001f760000013d0000001f0530018f00000a8206300198000000400200043d000000000462001900001f760000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f720000c13d000000000005004b00001f830000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd00010430000a000000000002000800000002001d0000000032020434000200000003001d00000ae30020009c000021550000613d000000000002004b0000215b0000613d00000aae0020009c000020eb0000813d000000010320003900000005023002100000003f0420003900000abb04400197000000400500043d0000000004450019000400000005001d000000000054004b0000000005000039000000010500403900000aae0040009c000020eb0000213d0000000100500190000020eb0000c13d000000400040043f00000004040000290000000003340436000300000003001d0000001f0320018f000000000002004b00001fb00000613d0000000305000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b00001fac0000c13d000000000003004b00000004020000290000000002020433000000000002004b000020f10000613d0000000302000029000000000012043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000020f70000613d000000000101043b00000008020000290000000002020433000000000002004b000020e70000613d00050a830010019b000000000400001900001fd30000013d0000000a04000029000000010440003900000008010000290000000001010433000000000014004b000020e70000813d000000400900043d000000440190003900000024029000390000000403900039000a00000004001d0000000505400210000600000005001d0000000204500029000700000004001d0000000006040433000000005406043400000a8304400197000000000505043300000a8305500197000000000054004b000020f80000613d00000000070500190000000007044019000000000007004b000021000000613d0000004006600039000000000606043300000ad008000041000900000009001d00000000008904350000000000730435000000000054004b000000000405a0190000000000420435000000000006004b0000000002000039000000010200c039000000000021043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000020f70000613d000000000201043b000000000100041400000a8302200197000000040020008c0000200d0000c13d0000000103000031000000200030008c00000020040000390000000004034019000000090a000029000020370000013d000000090300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f000000090a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000020260000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000020220000c13d0000001f07400190000020330000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000210d0000613d0000001f01400039000000600110018f000000000ba1001900000000001b004b0000000001000039000000010100403900000aae00b0009c000020eb0000213d0000000100100190000020eb0000c13d0000004000b0043f0000001f0030008c000020e90000a13d00000000050a043300000a830050009c000020e90000213d00000abe0100004100000000001b04350000000401b00039000000000051043500000000010004140000000502000029000000040020008c00000020040000390000207e0000613d000900000005001d00000a8000b0009c00000a800200004100000000020b4019000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000050200002900010000000b001d29fb29f60000040f000000010b000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056b00190000206c0000613d000000000701034f00000000080b0019000000007907043c0000000008980436000000000058004b000020680000c13d0000001f07400190000020790000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000009050000290000212b0000613d0000001f01400039000000600110018f000000000ab1001900000aae00a0009c000020eb0000213d0000004000a0043f000000200040008c000020e90000413d00000000020b0433000000000002004b0000000003000039000000010300c039000000000032004b000020e90000c13d000000000002004b00001fcd0000613d000000040200002900000000020204330000000a03000029000000000032004b000020f10000a13d00000008020000290000000002020433000000000032004b000020f10000a13d00000006030000290000000302300029000000000202043300000007030000290000000003030433000000000303043300000a83033001970000002404a00039000000000034043500000add0300004100000000003a04350000000403a0003900000000002304350000000002000414000000040050008c0000002004000039000020d60000613d00000a8000a0009c00000a800100004100000000010a4019000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ac8011001c7000000000205001900090000000a001d29fb29f60000040f000000090a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000020c30000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000020bf0000c13d0000001f07400190000020d00000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000021370000613d0000001f01400039000000600110018f0000000001a1001900000aae0010009c000020eb0000213d000000400010043f000000200040008c000020e90000413d0000000a04000029000000010440003900000004010000290000000001010433000000000041004b000020f10000a13d0000000501400210000000030110002900000000020a0433000000000021043500001fcf0000013d0000000401000029000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd0001043000000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd00010430000000000001042f00000ab7040000410000000000490435000000200400003900000000004304350000001b03000039000000000032043500000aba02000041000021070000013d00000ab7040000410000000000490435000000200400003900000000004304350000001403000039000000000032043500000ab902000041000000000021043500000a800090009c00000a8009008041000000400190021000000aad011001c7000029fd000104300000001f0530018f00000a8206300198000000400200043d0000000004620019000021180000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021140000c13d000000000005004b000021250000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd000104300000001f0530018f00000a8206300198000000400200043d0000000004620019000021420000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021320000c13d000021420000013d0000001f0530018f00000a8206300198000000400200043d0000000004620019000021420000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000213e0000c13d000000000005004b0000214f0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000121019f000029fd0001043000000adc01000041000000000010043f0000001101000039000000040010043f00000ab001000041000029fd00010430000000400100043d000000440210003900000ae003000041000000000032043500000024021000390000001403000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd000104300004000000000002000200000004001d000300000003001d000400000002001d00000ab3020000410000000000200443000100000001001d0000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f0000000100200190000021f50000613d000000000101043b000000000001004b000021ed0000613d000000400200043d000000640120003900000002030000290000000000310435000000030100002900000a830110019700000044032000390000000000130435000000200120003900000aac030000410000000000310435000000040300002900000a8303300197000000240420003900000000003404350000006403000039000000000032043500000ae40020009c000021ef0000813d000000a003200039000000400030043f000000000302043300000000040004140000000102000029000000040020008c000021c60000c13d00000001020000390000000104000031000000000004004b000021d90000613d0000001f0140003900000ae2011001970000003f0110003900000ae203100197000000400100043d0000000003310019000000000013004b0000000006000039000000010600403900000aae0030009c000021ef0000213d0000000100600190000021ef0000c13d000000400030043f000000000341043600000ae2054001980000001f0640018f00000000045300190000000307000367000021b80000613d000000000807034f0000000009030019000000008a08043c0000000009a90436000000000049004b000021b40000c13d000000000006004b000021db0000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000021db0000013d00000a800010009c00000a8001008041000000400110021000000a800030009c00000a80030080410000006003300210000000000113019f00000a800040009c00000a8004008041000000c003400210000000000131019f29fb29f10000040f000000010220018f0003000000010355000000600110027000010a800010019d00000a8004100197000000000004004b0000219e0000c13d00000060010000390000008003000039000000000002004b000021ed0000613d0000000001010433000000000001004b000021ec0000613d00000abc0010009c000021ed0000213d000000200010008c000021ed0000413d0000000001030433000000000001004b0000000002000039000000010200c039000000000021004b000021ed0000c13d000000000001004b000021ed0000613d000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000000001042f000d000000000002000100000003001d000300000001001d000400000002001d0000000021020434000500000002001d000000000001004b000023700000613d0000000302000029000200200020003d000d00000000001d00000000070000190000000d0300002900000005083000290000000002080433000000003202043400000a8302200197000000000303043300000a8303300197000000000032004b0000237f0000613d00000000040300190000000004024019000000000004004b000023860000613d000000010670003900000003040000290000000004040433000000000064004b000023790000a13d0000000505600210000d00000005001d00000002045000290000000004040433000000000032004b00000000020400190000000002002019000900000002001d000000000400a019000a00000004001d000000010210008a000000000027004b000b00000006001d0000225f0000813d000000000061004b000023790000a13d0000000d0200002900000005012000290000000004010433000000002104043400000a8301100197000000000202043300000a8302200197000000000021004b0000237f0000613d00000000030200190000000003014019000000000003004b000023860000613d000700000008001d000800000007001d00000040044000390000000004040433000000000004004b0000000004000039000000010400c039000000400600043d00000044056000390000000000450435000000000021004b000000000102a0190000002402600039000000000012043500000ad0010000410000000000160435000c00000006001d0000000401600039000000000031043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000023970000613d000000000201043b000000000100041400000a8302200197000000040020008c000022610000c13d0000000103000031000000200030008c00000020040000390000000004034019000000080700002900000007080000290000000c0a0000290000228d0000013d000800010000002d000022a00000013d0000000c0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f0000000c0a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a00190000227a0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000022760000c13d0000001f07400190000022870000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000023c30000613d000000080700002900000007080000290000001f01400039000000600210018f0000000001a20019000000000021004b0000000002000039000000010200403900000aae0010009c000023730000213d0000000100200190000023730000c13d000000400010043f000000200030008c000023710000413d00000000010a0433000800000001001d00000a830010009c000023710000213d00000004010000290000000001010433000000000071004b000023790000a13d0000000004080433000000002104043400000a8301100197000000000202043300000a8302200197000000000021004b0000237f0000613d00000000030200190000000003014019000000000003004b000023860000613d00000040044000390000000004040433000000000004004b0000000004000039000000010400c039000000400600043d00000044056000390000000000450435000000000021004b000000000102a0190000002402600039000000000012043500000ad0010000410000000000160435000c00000006001d0000000401600039000000000031043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000023970000613d000000000201043b000000000100041400000a8302200197000000040020008c000022d70000c13d0000000103000031000000200030008c000000200400003900000000040340190000000c0a000029000023010000013d0000000c0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f0000000c0a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000022f00000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000022ec0000c13d0000001f07400190000022fd0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000023980000613d0000001f01400039000000600110018f0000000004a10019000000000014004b0000000001000039000000010100403900000aae0040009c000023730000213d0000000100100190000023730000c13d000000400040043f0000001f0030008c000023710000a13d00000000020a043300000a830020009c000023710000213d00000aca0040009c000023730000213d0000002001400039000600000001001d000000400010043f000700000004001d000000000004043500000ab3010000410000000000100443000c00000002001d0000000400200443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f0000000100200190000023970000613d000000000101043b000000000001004b0000000b060000290000000c070000290000000703000029000023710000613d000000400800043d000000640180003900000080020000390000000000210435000000080100002900000a83011001970000004402800039000000000012043500000024018000390000000902000029000000000021043500000ae501000041000000000018043500000004018000390000000a020000290000000000210435000000000103043300000084028000390000000000120435000000a402800039000000000001004b00000006090000290000234a0000613d000000000300001900000000042300190000000005930019000000000505043300000000005404350000002003300039000000000013004b000023430000413d000000000212001900000000000204350000000002000414000000040070008c000023680000613d0000001f0110003900000ae201100197000000a40110003900000a800010009c00000a8001008041000000600110021000000a800080009c00000a800300004100000000030840190000004003300210000000000131019f00000a800020009c00000a8002008041000000c002200210000000000121019f0000000002070019000c00000008001d29fb29f10000040f0000000c080000290000000b06000029000000600310027000010a800030019d00030000000103550000000100200190000023a40000613d00000aae0080009c000023730000213d000000400080043f00000004010000290000000001010433000000000016004b0000000007060019000022020000413d000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd0001043000000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd00010430000000400100043d000000440210003900000aba03000041000000000032043500000024021000390000001b030000390000238c0000013d000000400100043d000000440210003900000ab903000041000000000032043500000024021000390000001403000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000aad011001c7000029fd00010430000000000001042f0000001f0530018f00000a8206300198000000400200043d0000000004620019000023ce0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000239f0000c13d000023ce0000013d00000a80033001970000001f0530018f00000a8206300198000000400200043d0000000004620019000023b00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023ac0000c13d000000000005004b000023bd0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000121019f000029fd000104300000001f0530018f00000a8206300198000000400200043d0000000004620019000023ce0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023ca0000c13d000000000005004b000023db0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd000104300000000004010019000000400100043d00000ae60010009c0000242b0000813d00000000030200190000002002100039000000400020043f00000000000104350000000001000414000000040040008c000023f10000c13d00000001020000390000000101000031000000000001004b000024020000c13d000024280000013d00000a800010009c00000a8001008041000000c001100210000000000003004b000023fa0000613d00000acb011001c700008009020000390000000005000019000023fb0000013d000000000204001929fb29f10000040f0003000000010355000000600110027000010a800010019d00000a8001100197000000000001004b000024280000613d0000001f0410003900000ae2044001970000003f0440003900000ae205400197000000400400043d0000000005540019000000000045004b0000000006000039000000010600403900000aae0050009c0000242b0000213d00000001006001900000242b0000c13d000000400050043f000000000614043600000ae2031001980000001f0410018f000000000136001900000003050003670000241b0000613d000000000705034f000000007807043c0000000006860436000000000016004b000024170000c13d000000000004004b000024280000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000000100200190000024310000613d000000000001042d00000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000400100043d000000640210003900000acc030000410000000000320435000000440210003900000acd03000041000000000032043500000024021000390000002303000039000000000032043500000ab702000041000000000021043500000004021000390000002003000039000000000032043500000a800010009c00000a8001008041000000400110021000000ace011001c7000029fd00010430000b000000000002000700000007001d000600000003001d000b00000001001d000300000006001d000a00000004001d000000000064004b000025e80000413d000000070050006c000025e80000413d000900000002001d000800000005001d00000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000025f00000613d000000000201043b000000400c00043d00000ad00100004100000000001c0435000000060000006b0000000007000039000000010700c0390000004401c000390000000000710435000000090600002900000a83086001970000002401c0003900000000008104350000000b0100002900000a83091001970000000401c000390000000000910435000000000100041400000a8305200197000000040050008c000024790000c13d0000000103000031000000200030008c00000020040000390000000004034019000024af0000013d000600000009001d000400000008001d000500000007001d00000a8000c0009c00000a800200004100000000020c4019000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000aad011001c7000100000005001d000000000205001900020000000c001d29fb29f60000040f000000020c000029000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c0019000024990000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000024950000c13d000000000006004b000024a60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000609000029000026180000613d00000009060000290000000507000029000000040800002900000001050000290000001f01400039000000600110018f000000000bc1001900000000001b004b0000000002000039000000010200403900000aae00b0009c000025ea0000213d0000000100200190000025ea0000c13d0000004000b0043f000000200030008c000025e80000413d00000000020c043300000a830020009c000025e80000213d000000000002004b000024c30000613d000000000a0b00190000250d0000013d0000004402b0003900000000007204350000002402b00039000000000082043500000ae70200004100000000002b04350000000402b0003900000000009204350000000002000414000000040050008c000025040000613d000600000009001d000400000008001d000500000007001d00000a8000b0009c00000a800100004100000000010b4019000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000aad011001c7000000000205001900020000000b001d29fb29f10000040f000000020b000029000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000024ed0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000024e90000c13d000000000006004b000024fa0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000609000029000026640000613d0000001f01400039000000600110018f000000090600002900000005070000290000000408000029000000000ab1001900000aae00a0009c000025ea0000213d0000004000a0043f000000200030008c000025e80000413d00000000010b043300000a830010009c000025e80000213d0000004401a000390000002402a000390000000403a00039000000000089004b000025f10000613d0000000b0500002900000000040600190000000004054019000600000004001d00000a8304400198000025f90000613d000000000089004b000000000605801900000ad00500004100090000000a001d00000000005a0435000000000043043500000a83036001970000000000320435000000000071043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000025f00000613d000000000201043b000000000100041400000a8302200197000000040020008c0000253b0000c13d0000000103000031000000200030008c000000200400003900000000040340190000000806000029000000090b000029000025670000013d000000090300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f000000090b000029000000600310027000000a8003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000025550000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000025510000c13d000000000006004b000025620000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000026360000613d00000008060000290000001f01400039000000600110018f000000000cb1001900000aae00c0009c000025ea0000213d0000004000c0043f000000200030008c000025e80000413d00000000020b043300000a830020009c000025e80000213d00000ade0100004100000000051c04360000000001000414000000040020008c0000257b0000c13d000000600030008c00000060040000390000000004034019000025aa0000013d000500000005001d00000a8000c0009c00000a800300004100000000030c4019000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000ac6011001c700090000000c001d29fb29f60000040f000000090c000029000000600310027000000a8003300197000000600030008c000000600400003900000000040340190000001f0640018f000000600740019000000000057c0019000025970000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000025930000c13d000000000006004b000025a40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000026420000613d000000080600002900000005050000290000001f01400039000000e00110018f0000000002c1001900000aae0020009c000025ea0000213d000000400020043f000000600030008c000025e80000413d00000000010c043300000adf0010009c000025e80000213d000000000405043300000adf0040009c000025e80000213d0000004003c00039000000000303043300000a800030009c000025e80000213d00000006050000290000000b0350014f00000a830030019800000000030100190000000003046019000000000104c01900000000003101a0000025de0000613d0000000a0000006b000026060000613d000000000001004b000026120000613d000000000003004b000026120000613d0000000a043000b90000000a054000fa000000000035004b0000260c0000c13d00000000041400d9000000000064004b000025e10000a13d000000000006004b000026060000613d00000000046100a900000000056400d9000000000015004b0000260c0000c13d00000000013400d90000000a0010006c0000264e0000213d000000030010006c000026540000413d0000000002060019000000000001042d0000000a010000290000000002060019000000000001042d000000070040006c0000000a010000290000000006040019000025dc0000813d000000440120003900000ab603000041000026560000013d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000000001042f00000ab70400004100000000004a0435000000200400003900000000004304350000001b03000039000000000032043500000aba02000041000026000000013d00000ab70400004100000000004a0435000000200400003900000000004304350000001403000039000000000032043500000ab902000041000000000021043500000a8000a0009c00000a800a0080410000004001a0021000000aad011001c7000029fd00010430000000440120003900000ad403000041000000000031043500000024012000390000001b03000039000026590000013d00000adc01000041000000000010043f0000001101000039000000040010043f00000ab001000041000029fd00010430000000440120003900000ad303000041000000000031043500000024012000390000001e03000039000026590000013d0000001f0530018f00000a8206300198000000400200043d0000000004620019000026230000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000261f0000c13d000000000005004b000026300000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000121019f000029fd000104300000001f0530018f00000a8206300198000000400200043d00000000046200190000266f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000263d0000c13d0000266f0000013d0000001f0530018f00000a8206300198000000400200043d00000000046200190000266f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000026490000c13d0000266f0000013d00000adc01000041000000000010043f0000000101000039000000040010043f00000ab001000041000029fd00010430000000440120003900000ab803000041000000000031043500000024012000390000001d03000039000000000031043500000ab701000041000000000012043500000004012000390000002003000039000000000031043500000a800020009c00000a8002008041000000400120021000000aad011001c7000029fd000104300000001f0530018f00000a8206300198000000400200043d00000000046200190000266f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000266b0000c13d000000000005004b0000267c0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd00010430000a000000000002000100000002001d000600000001001d0000000021010434000200000002001d000000000001004b000028b50000613d0000000002000019000700000002001d00000005012002100000000204100029000000400900043d0000004401900039000000240290003900000004039000390000000004040433000000006504043400000a8307500197000000000506043300000a8308500197000000000087004b000028c50000613d00000000050800190000000005074019000000000005004b000028cd0000613d0000004004400039000000000404043300000ad006000041000a00000009001d00000000006904350000000000530435000000000087004b000900000007001d000800000008001d000000000308001900000000030720190000000000320435000000000004004b0000000002000039000000010200c039000000000021043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000028be0000613d000000000201043b000000000100041400000a8302200197000000040020008c000026c70000c13d0000000103000031000000200030008c00000020040000390000000004034019000000090600002900000008070000290000000a0a000029000026f30000013d0000000a0300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f0000000a0a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000026e00000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000026dc0000c13d0000001f07400190000026ed0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000028da0000613d000000090600002900000008070000290000001f01400039000000600110018f000000000ba1001900000000001b004b0000000001000039000000010100403900000aae00b0009c000028b80000213d0000000100100190000028b80000c13d0000004000b0043f0000001f0030008c000028b60000a13d00000000050a043300000a830050009c000028b60000213d00000ade0100004100000000021b04360000000001000414000000040050008c000a00000005001d0000270d0000c13d000000600030008c000000600400003900000000040340190000273e0000013d000400000002001d00000a8000b0009c00000a800200004100000000020b4019000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ac6011001c7000000000205001900050000000b001d29fb29f60000040f000000050b000029000000600310027000000a8003300197000000600030008c00000060040000390000000004034019000000600640019000000000056b0019000027290000613d000000000701034f00000000080b0019000000007907043c0000000008980436000000000058004b000027250000c13d0000001f07400190000027360000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000029050000613d0000000a050000290000000906000029000000080700002900000004020000290000001f01400039000000e00110018f000000000ab1001900000aae00a0009c000028b80000213d0000004000a0043f000000600030008c000028b60000413d00000000010b043300000adf0010009c000028b60000213d000000000802043300000adf0080009c000028b60000213d0000004002b00039000000000202043300000a800020009c000028b60000213d00000ab20200004100000000002a04350000000402a000390000000000520435000000000076004b000000000801a0190000000001000414000000040060008c00000020040000390000278b0000613d000400000008001d00000a8000a0009c00000a800200004100000000020a4019000000400220021000000a800010009c00000a8001008041000000c001100210000000000121019f00000ab0011001c7000000000206001900050000000a001d29fb29f60000040f000000050a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000027760000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000027720000c13d0000001f07400190000027830000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000028e60000613d0000000a050000290000000906000029000000080700002900000004080000290000001f01400039000000600210018f000000000ba2001900000aae00b0009c000028b80000213d0000004000b0043f000000200030008c000028b60000413d00000000020a0433000000000282004b000028bf0000413d0000002403b00039000000000063043500000add0300004100000000003b04350000000403b0003900000000002304350000000002000414000000040050008c000027cf0000613d00000a8000b0009c00000a800100004100000000010b4019000000400110021000000a800020009c00000a8002008041000000c002200210000000000112019f00000ac8011001c7000000000205001900050000000b001d29fb29f60000040f000000050b000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056b0019000027ba0000613d000000000701034f00000000080b0019000000007907043c0000000008980436000000000058004b000027b60000c13d0000001f07400190000027c70000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000029110000613d0000001f014000390000000a050000290000000906000029000000080700002900000ae2011001970000000009b1001900000aae0090009c000028b80000213d000000400090043f000000200040008c000028b60000413d00000000010b0433000000000076004b00000000040100190000000004002019000000000100a019000900000001001d00000006010000290000000001010433000000000001004b000028bf0000613d000000010210008a0000000703000029000000000023004b000800000004001d0000281f0000813d0000000102300039000000000021004b000028f20000a13d000000050120021000000002041000290000004401900039000000240290003900000004039000390000000006040433000000005406043400000a8304400197000000000505043300000a8305500197000000000054004b000028c50000613d00000000070500190000000007044019000000000007004b000028cd0000613d0000004006600039000000000606043300000ad008000041000500000009001d00000000008904350000000000730435000000000054004b000000000405a0190000000000420435000000000006004b0000000002000039000000010200c039000000000021043500000a85010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000a800010009c00000a8001008041000000c00110021000000a86011001c7000080050200003929fb29f60000040f0000000100200190000028be0000613d000000000201043b000000000100041400000a8302200197000000040020008c000028210000c13d0000000103000031000000200030008c000000200400003900000000040340190000000a05000029000000050a0000290000284c0000013d000500010000002d000028580000013d000000050300002900000a800030009c00000a8003008041000000400330021000000a800010009c00000a8001008041000000c001100210000000000131019f00000aad011001c729fb29f60000040f000000050a000029000000600310027000000a8003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a00190000283a0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000028360000c13d0000001f07400190000028470000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000292f0000613d0000000a050000290000001f01400039000000600110018f0000000009a1001900000aae0090009c000028b80000213d000000400090043f000000200030008c000028b60000413d00000000010a0433000500000001001d00000a830010009c000028b60000213d00000aca0090009c000028b80000213d0000002001900039000300000001001d000000400010043f000400000009001d000000000009043500000ab30100004100000000001004430000000400500443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f0000000100200190000028be0000613d000000000101043b000000000001004b0000000a060000290000000403000029000028b60000613d000000400700043d000000640170003900000080020000390000000000210435000000050100002900000a83011001970000004402700039000000000012043500000024017000390000000802000029000000000021043500000ae5010000410000000000170435000000040170003900000009020000290000000000210435000000000103043300000084027000390000000000120435000000a402700039000000000001004b00000003080000290000288f0000613d000000000300001900000000042300190000000005830019000000000505043300000000005404350000002003300039000000000013004b000028880000413d000000000212001900000000000204350000000002000414000000040060008c000028ac0000613d0000001f0110003900000ae201100197000000a40110003900000a800010009c00000a8001008041000000600110021000000a800070009c00000a800300004100000000030740190000004003300210000000000131019f00000a800020009c00000a8002008041000000c002200210000000000121019f0000000002060019000a00000007001d29fb29f10000040f0000000a07000029000000600310027000010a800030019d00030000000103550000000100200190000028f80000613d00000aae0070009c000028b80000213d00000007020000290000000102200039000000400070043f00000006010000290000000001010433000000000012004b0000268a0000413d000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000000001042f00000adc01000041000000000010043f0000001101000039000000040010043f00000ab001000041000029fd0001043000000ab7040000410000000000490435000000200400003900000000004304350000001b03000039000000000032043500000aba02000041000028d40000013d00000ab7040000410000000000490435000000200400003900000000004304350000001403000039000000000032043500000ab902000041000000000021043500000a800090009c00000a8009008041000000400190021000000aad011001c7000029fd000104300000001f0530018f00000a8206300198000000400200043d00000000046200190000293a0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000028e10000c13d0000293a0000013d0000001f0530018f00000a8206300198000000400200043d00000000046200190000291c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000028ed0000c13d0000291c0000013d00000adc01000041000000000010043f0000003201000039000000040010043f00000ab001000041000029fd0001043000000a80033001970000001f0530018f00000a8206300198000000400200043d00000000046200190000291c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000029000000c13d0000291c0000013d0000001f0530018f00000a8206300198000000400200043d00000000046200190000291c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000290c0000c13d0000291c0000013d0000001f0530018f00000a8206300198000000400200043d00000000046200190000291c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000029180000c13d000000000005004b000029290000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000121019f000029fd000104300000001f0530018f00000a8206300198000000400200043d00000000046200190000293a0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000029360000c13d000000000005004b000029470000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000a800020009c00000a80020080410000004002200210000000000112019f000029fd000104300003000000000002000200000003001d000300000002001d00000ab3020000410000000000200443000100000001001d0000000400100443000000000100041400000a800010009c00000a8001008041000000c00110021000000ab4011001c7000080020200003929fb29f60000040f0000000100200190000029d10000613d000000000101043b000000000001004b000029c90000613d000000400200043d000000440120003900000002030000290000000000310435000000200120003900000ac7030000410000000000310435000000030300002900000a8303300197000000240420003900000000003404350000004403000039000000000032043500000ae80020009c000029cb0000813d0000008003200039000000400030043f000000000302043300000000040004140000000102000029000000040020008c000029a20000c13d00000001020000390000000104000031000000000004004b000029b50000613d0000001f0140003900000ae2011001970000003f0110003900000ae203100197000000400100043d0000000003310019000000000013004b0000000006000039000000010600403900000aae0030009c000029cb0000213d0000000100600190000029cb0000c13d000000400030043f000000000341043600000ae2054001980000001f0640018f00000000045300190000000307000367000029940000613d000000000807034f0000000009030019000000008a08043c0000000009a90436000000000049004b000029900000c13d000000000006004b000029b70000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000029b70000013d00000a800010009c00000a8001008041000000400110021000000a800030009c00000a80030080410000006003300210000000000113019f00000a800040009c00000a8004008041000000c003400210000000000131019f29fb29f10000040f000000010220018f0003000000010355000000600110027000010a800010019d00000a8004100197000000000004004b0000297a0000c13d00000060010000390000008003000039000000000002004b000029c90000613d0000000001010433000000000001004b000029c80000613d00000abc0010009c000029c90000213d000000200010008c000029c90000413d0000000001030433000000000001004b0000000002000039000000010200c039000000000021004b000029c90000c13d000000000001004b000029c90000613d000000000001042d0000000001000019000029fd0001043000000adc01000041000000000010043f0000004101000039000000040010043f00000ab001000041000029fd00010430000000000001042f000000000001042f00000000050100190000000000200443000000050030008c000029e10000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000029d90000413d00000a800030009c00000a80030080410000006001300210000000000200041400000a800020009c00000a8002008041000000c002200210000000000112019f00000ae9011001c7000000000205001929fb29f60000040f0000000100200190000029f00000613d000000000101043b000000000001042d000000000001042f000029f4002104210000000102000039000000000001042d0000000002000019000000000001042d000029f9002104230000000102000039000000000001042d0000000002000019000000000001042d000029fb00000432000029fc0001042e000029fd000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000002000000000000000000000000000000c0000001000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000000000007301e3c700000000000000000000000000000000000000000000000000000000b7e0d4bf00000000000000000000000000000000000000000000000000000000e2d9d4db00000000000000000000000000000000000000000000000000000000f41766d700000000000000000000000000000000000000000000000000000000f41766d800000000000000000000000000000000000000000000000000000000fe411f1400000000000000000000000000000000000000000000000000000000e2d9d4dc00000000000000000000000000000000000000000000000000000000e5e31b1300000000000000000000000000000000000000000000000000000000b7e0d4c000000000000000000000000000000000000000000000000000000000c45a015500000000000000000000000000000000000000000000000000000000d7b0e0a5000000000000000000000000000000000000000000000000000000009881fcb3000000000000000000000000000000000000000000000000000000009881fcb40000000000000000000000000000000000000000000000000000000098a0fb3c00000000000000000000000000000000000000000000000000000000a32b1fcd000000000000000000000000000000000000000000000000000000007301e3c80000000000000000000000000000000000000000000000000000000076c72751000000000000000000000000000000000000000000000000000000007af728c8000000000000000000000000000000000000000000000000000000004c1ee03d000000000000000000000000000000000000000000000000000000005e1e63240000000000000000000000000000000000000000000000000000000067ffb6690000000000000000000000000000000000000000000000000000000067ffb66a000000000000000000000000000000000000000000000000000000006cc1ae13000000000000000000000000000000000000000000000000000000005e1e6325000000000000000000000000000000000000000000000000000000005e60dab5000000000000000000000000000000000000000000000000000000004c1ee03e00000000000000000000000000000000000000000000000000000000544caa56000000000000000000000000000000000000000000000000000000005a47ddc3000000000000000000000000000000000000000000000000000000003fc8cef2000000000000000000000000000000000000000000000000000000003fc8cef3000000000000000000000000000000000000000000000000000000004386e63c00000000000000000000000000000000000000000000000000000000448725b4000000000000000000000000000000000000000000000000000000000dede6c40000000000000000000000000000000000000000000000000000000013dcfc590000000000000000000000000000000000000000000000000000000018a13086796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d95539132020000020000000000000000000000000000000400000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff89afcb44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000800000000000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000002e1a7d4d00000000000000000000000000000000000000000000000000000000526f757465723a20494e53554646494349454e545f425f414d4f554e5400000008c379a000000000000000000000000000000000000000000000000000000000526f757465723a20494e53554646494349454e545f415f414d4f554e54000000526f757465723a205a45524f5f41444452455353000000000000000000000000526f757465723a204944454e544943414c5f41444452455353455300000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff9fe5e31b13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000a000000000000000000000000000000000000000000000000000000020000000000000000000000000d505accf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e40000000000000000000000000000000000000000000000000000000000000020000000a00000000000000000d0e30db00000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000006a62784200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf02000000000000000000000000000000000000000000000000000000000000004c454400000000000000000000000000000000000000000000000000000000005472616e7366657248656c7065723a204554485f5452414e534645525f464149000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000600000000000000000000000006801cc30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a0000000000000000018160ddd00000000000000000000000000000000000000000000000000000000526f757465723a20494e53554646494349454e545f4c49515549444954590000526f757465723a20494e53554646494349454e545f414d4f554e54000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100004e54000000000000000000000000000000000000000000000000000000000000526f757465723a20494e53554646494349454e545f4f55545055545f414d4f55000000000000000000000000000000000000000000000000ffffffffffffff5f4e487b7100000000000000000000000000000000000000000000000000000000f140a35a000000000000000000000000000000000000000000000000000000000902f1ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff526f757465723a20494e56414c49445f50415448000000000000000000000000526f757465723a20455850495245440000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff60022c0d9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe082dfdce400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff800200000200000000000000000000000000000000000000000000000000000000c8c21d3a4393b7911056f3929f6e3544d6184b96444cbaab5b488c17aa833aa4
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff20000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
-----Decoded View---------------
Arg [0] : _factory (address): 0x30A0DD3D0D9E99BD0E67b323FB706788766dCff2
Arg [1] : _weth (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff2
Arg [1] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.