| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x2902f2…e186af | 1 hr agoTue, 18 Aug 2026 02:59:31 UTC | ApprovalForAll | [0] 0x000000000000…0a141b41 [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000000 |
| 0x563e78…b51109 | 1 day agoMon, 17 Aug 2026 03:28:18 UTC | Transfer | [0] 0x000000000000…f6cb5de0 [1] 0x000000000000…c897c815 [2] 0x000000000000…00000550 |
| 0xc0e9b0…b62fd6 | 1 day agoMon, 17 Aug 2026 03:28:10 UTC | ApprovalForAll | [0] 0x000000000000…f6cb5de0 [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0x64add7…279478 | 1 day agoSun, 16 Aug 2026 20:11:55 UTC | Transfer | [0] 0x000000000000…58472a69 [1] 0x000000000000…37f4725c [2] 0x000000000000…000002d5 |
| 0x051830…e0cb2e | 1 day agoSun, 16 Aug 2026 13:36:07 UTC | ApprovalForAll | [0] 0x000000000000…48ce5629 [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0xef8d7f…bc1817 | 2 days agoSat, 15 Aug 2026 13:36:24 UTC | ApprovalForAll | [0] 0x000000000000…b2228e49 [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0xee1a33…c45bd3 | 2 days agoSat, 15 Aug 2026 08:28:48 UTC | Transfer | [0] 0x000000000000…c897c815 [1] 0x000000000000…58472a69 [2] 0x000000000000…000002d5 |
| 0x957f22…3bf338 | 3 days agoSat, 15 Aug 2026 03:20:23 UTC | 0x30385c…adfe | [0] 0x000000000000…a2203860 [1] 0x000000000000…0000065c |
| 0x957f22…3bf338 | 3 days agoSat, 15 Aug 2026 03:20:23 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…a2203860 [2] 0x000000000000…0000065c |
| 0x957f22…3bf338 | 3 days agoSat, 15 Aug 2026 03:20:23 UTC | 0x30385c…adfe | [0] 0x000000000000…a2203860 [1] 0x000000000000…0000065b |
| 0x957f22…3bf338 | 3 days agoSat, 15 Aug 2026 03:20:23 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…a2203860 [2] 0x000000000000…0000065b |
| 0x9ab144…1aa537 | 3 days agoFri, 14 Aug 2026 22:30:26 UTC | Transfer | [0] 0x000000000000…1e88652b [1] 0x000000000000…c897c815 [2] 0x000000000000…000002d5 |
| 0x258a2c…1bc687 | 3 days agoFri, 14 Aug 2026 22:30:04 UTC | ApprovalForAll | [0] 0x000000000000…1e88652b [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0xf27112…43d82c | 3 days agoFri, 14 Aug 2026 21:15:00 UTC | Transfer | [0] 0x000000000000…5145ab00 [1] 0x000000000000…48ce5629 [2] 0x000000000000…000004fe |
| 0xd7a4a5…b2083f | 3 days agoFri, 14 Aug 2026 21:14:47 UTC | Transfer | [0] 0x000000000000…5145ab00 [1] 0x000000000000…48ce5629 [2] 0x000000000000…000004fd |
| 0xf12b9e…bffd8e | 3 days agoFri, 14 Aug 2026 21:14:35 UTC | Transfer | [0] 0x000000000000…5145ab00 [1] 0x000000000000…48ce5629 [2] 0x000000000000…0000054d |
| 0x3af477…deb645 | 3 days agoFri, 14 Aug 2026 17:12:19 UTC | ApprovalForAll | [0] 0x000000000000…f577cf2c [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000000 |
| 0x072b5c…c47b38 | 3 days agoFri, 14 Aug 2026 15:33:37 UTC | Transfer | [0] 0x000000000000…4a4172ed [1] 0x000000000000…5145ab00 [2] 0x000000000000…0000054d |
| 0x7a1f4a…ae98ab | 3 days agoFri, 14 Aug 2026 15:19:42 UTC | Transfer | [0] 0x000000000000…312c6c0d [1] 0x000000000000…5145ab00 [2] 0x000000000000…000004fe |
| 0x7a1f4a…ae98ab | 3 days agoFri, 14 Aug 2026 15:19:42 UTC | Transfer | [0] 0x000000000000…312c6c0d [1] 0x000000000000…5145ab00 [2] 0x000000000000…000004fd |
| 0x36ac89…fc45f1 | 3 days agoFri, 14 Aug 2026 15:13:14 UTC | ApprovalForAll | [0] 0x000000000000…6078d9be [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0xa4cbf9…cf0f7a | 3 days agoFri, 14 Aug 2026 15:12:53 UTC | ApprovalForAll | [0] 0x000000000000…36fe669d [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| 0xcd5277…a17c84 | 3 days agoFri, 14 Aug 2026 15:11:54 UTC | Transfer | [0] 0x000000000000…312c6c0d [1] 0x000000000000…6078d9be [2] 0x000000000000…000004ff |
| 0xf43608…9692bd | 3 days agoFri, 14 Aug 2026 15:11:40 UTC | Transfer | [0] 0x000000000000…e67ee2d3 [1] 0x000000000000…36fe669d [2] 0x000000000000…0000055c |
| 0x793a04…0d7afc | 3 days agoFri, 14 Aug 2026 14:02:55 UTC | ApprovalForAll | [0] 0x000000000000…05dc11d2 [1] 0x000000000000…0000c300 data: 0x000000000000000000…00000001 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {ERC721Enumerable, ERC721} from
"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {IERC4906} from "@openzeppelin/contracts/interfaces/IERC4906.sol";
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import {Base64} from "@openzeppelin/contracts/utils/Base64.sol";
import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
import {Vault} from "./Vault.sol";
import {ICreatorToken, ITransferValidator} from "./CreatorToken.sol";
interface ILedger {
function tokenJson(uint256 id, uint24 look, uint256 rank) external view returns (string memory);
}
interface ICowToken {
function burnFrom(address from, uint256 amount) external;
}
/// @title COWS BROKERS — the second herd.
///
/// @notice The same 5,000 cows, the same art, a second contract. The first one
/// was removed from a marketplace after its mint had already started,
/// which is a thing that can happen to any collection and is not
/// something a contract can prevent. This one exists so the people who
/// minted there are not left holding a token nobody will show.
///
/// The important difference from the first contract is `airdrop`.
/// The first deliberately had NO function that mints without payment —
/// that was the right call for a fair mint, and it is exactly why the
/// holders there cannot be made whole on it. Honouring a snapshot
/// requires being able to mint for free, so this one can, and the power
/// is fenced in three ways:
///
/// 1. `reserve` — tokens the PAID mint may never touch, so the herd
/// cannot be sold out from under the people owed an airdrop.
/// 2. `sealAirdrop()` — permanently gives up free minting, once the
/// snapshot is honoured. After that this contract is as
/// allocation-free as the first.
/// 3. Every free mint emits `Airdropped`, so the whole list is
/// readable from the logs by anyone.
contract Pasture is ERC721Enumerable, ERC2981, IERC4906, ICreatorToken, Ownable, ReentrancyGuard {
/// @notice How many Cows there are. Fixed forever. Same as the first herd.
uint256 public constant SUPPLY = 5000;
/// @notice How many one wallet may mint. Not a constant, on purpose.
uint256 public walletCap = 20;
/// @notice How many may ever be minted at all. Only ever LOWERED.
uint256 public mintCap = SUPPLY;
/// @notice Tokens set aside for the snapshot, which the paid mint may not
/// reach. This is the promise, written where it can be checked.
/// @dev Can only be RAISED while the airdrop is unsealed, and is forced to
/// zero when it is sealed. Anyone can read it and compare it against
/// the first contract's holder count.
uint256 public reserve;
/// @notice Once true, nothing can ever be minted for free again.
bool public airdropSealed;
ICowToken public immutable cow;
/// @notice Where the genesis identities are buried.
address public immutable vault;
address public ledger;
address public treasury;
bool public artFrozen;
/// @notice What one Cow costs, in $COW.
uint256 public price;
uint256 public minted;
/// @notice How many were given away rather than sold. Sums with the paid
/// count to `minted`; kept apart so the split is public.
uint256 public airdropped;
bool public open;
mapping(address => uint256) public mintedBy;
/* The reveal. Which artwork a token id turns out to be is decided by a
* block hash that does not exist yet, in two steps, so nobody — the
* deployer included — can see the mapping before committing to it. */
uint256 public offset;
bool public shuffled;
uint256 public sealBlock;
address public transferValidator;
event Minted(address indexed to, uint256 indexed id);
event Airdropped(address indexed to, uint256 indexed id);
event Sealed(uint256 sealBlock);
event Shuffled(uint256 offset);
event PriceSet(uint256 price);
event OpenSet(bool open);
event WalletCapSet(uint256 cap);
event MintCapSet(uint256 cap);
event ReserveSet(uint256 reserve);
event AirdropSealed();
constructor(address _treasury, address _cow, bytes memory genesis, uint256 _price)
ERC721("Cows Brokers", "COWS")
Ownable(msg.sender)
{
require(_treasury != address(0) && _cow != address(0), "zero addr");
require(genesis.length == SUPPLY * 3, "bad genesis");
require(_price > 0, "zero price");
treasury = _treasury;
cow = ICowToken(_cow);
vault = Vault.write(genesis);
price = _price;
_setDefaultRoyalty(_treasury, 500); // 5%
}
/* -------------------------------------------------------------- reveal */
/// @notice Arm the shuffle. Two steps on purpose: in one call the caller
/// could simulate the result and choose whether to send it.
function sealCollection() external onlyOwner {
require(!shuffled, "already shuffled");
sealBlock = block.number + 1;
emit Sealed(sealBlock);
}
/// @notice Draw the offset. Anyone may call it; nobody can influence it.
/// @dev WATCH OUT on Robinhood Chain: the EVM's block.number is a different,
/// much slower counter than the RPC's eth_blockNumber. "Wait a block"
/// means waiting on THIS clock, and blockhash only reaches back 256 of
/// them — roughly forty minutes. Shuffle promptly after sealing.
function shuffle() external {
require(!shuffled, "already shuffled");
require(sealBlock != 0, "not sealed");
require(block.number > sealBlock, "too early");
bytes32 bh = blockhash(sealBlock);
require(bh != 0, "seal expired");
offset = uint256(bh) % SUPPLY;
shuffled = true;
emit Shuffled(offset);
}
function rowOf(uint256 id) public view returns (uint256) {
require(shuffled, "not shuffled");
require(id >= 1 && id <= SUPPLY, "no such id");
return (id - 1 + offset) % SUPPLY;
}
/// @notice What this Cow looks like, packed into five trait indices.
function lookOf(uint256 id) public view returns (uint24) {
bytes memory b = Vault.read(vault, rowOf(id) * 3, 3);
return uint24(
(uint256(uint8(b[0])) << 16) | (uint256(uint8(b[1])) << 8) | uint256(uint8(b[2]))
);
}
/* ---------------------------------------------------------------- mint */
/// @notice Burn $COW, take a Cow. Approve this contract for the total
/// first — the tokens are destroyed, not collected.
/// @dev Cannot touch the reserve. If 1,300 are owed to the first herd's
/// holders, the paid mint stops 1,300 short of the cap and stays there
/// until they are delivered.
function mint(uint256 qty) external nonReentrant {
require(open, "the herd is closed");
require(shuffled, "not shuffled");
require(qty > 0, "zero qty");
require(minted + qty <= mintCap, "sold out");
require(minted + qty + reserve <= SUPPLY, "the rest is reserved for the airdrop");
require(mintedBy[msg.sender] + qty <= walletCap, "over your limit");
mintedBy[msg.sender] += qty;
cow.burnFrom(msg.sender, price * qty);
for (uint256 i; i < qty; ++i) {
uint256 id = ++minted;
_safeMint(msg.sender, id);
emit Minted(msg.sender, id);
}
}
/* ------------------------------------------------------------- airdrop */
/// @notice Mint to the snapshot, free, in batches.
/// @dev Deliberately dumb: a flat list of recipients and counts, no merkle
/// root and no claim page. A claim needs every recipient to show up and
/// pay gas, and the ones who do not show up are exactly the ones this
/// is meant to protect. Delivering costs the owner the gas instead.
///
/// Each delivery reduces `reserve` by what it hands out, so the promise
/// shrinks as it is kept and cannot be double-counted.
function airdrop(address[] calldata to, uint256[] calldata qty)
external
onlyOwner
nonReentrant
{
require(!airdropSealed, "airdrop is sealed");
require(shuffled, "not shuffled");
require(to.length == qty.length, "length mismatch");
require(to.length > 0, "empty batch");
uint256 total;
for (uint256 i; i < to.length; ++i) {
require(to[i] != address(0), "zero addr");
require(qty[i] > 0, "zero qty");
total += qty[i];
}
require(minted + total <= SUPPLY, "past the supply");
// The airdrop is free, so it does not count against `walletCap` — the
// cap is there to spread a paid mint, and someone owed thirty Cows is
// owed thirty Cows.
for (uint256 i; i < to.length; ++i) {
for (uint256 j; j < qty[i]; ++j) {
uint256 id = ++minted;
_safeMint(to[i], id);
emit Airdropped(to[i], id);
}
}
airdropped += total;
reserve = total >= reserve ? 0 : reserve - total;
emit ReserveSet(reserve);
}
/// @notice Set aside tokens the paid mint may not sell.
/// @dev Only upwards. Lowering it would let the promise be quietly walked
/// back; delivering the airdrop lowers it honestly, by fulfilling it.
function setReserve(uint256 v) external onlyOwner {
require(!airdropSealed, "airdrop is sealed");
require(v >= reserve, "the reserve can only go up");
require(minted + v <= SUPPLY, "past the supply");
reserve = v;
emit ReserveSet(v);
}
/// @notice Give up free minting for good, and release the reserve.
/// @dev Call this once the snapshot is delivered. From then on this
/// contract has no allocation function at all, like the first herd.
function sealAirdrop() external onlyOwner {
airdropSealed = true;
reserve = 0;
emit AirdropSealed();
emit ReserveSet(0);
}
function quote(uint256 qty) external view returns (uint256) {
return price * qty;
}
/// @notice How many the paid mint can still sell — the reserve removed.
function left() external view returns (uint256) {
uint256 sellable = SUPPLY - reserve;
if (mintCap < sellable) sellable = mintCap;
return sellable > minted ? sellable - minted : 0;
}
/* --------------------------------------------------------------- admin */
function setWalletCap(uint256 v) external onlyOwner {
require(v > 0, "zero cap");
walletCap = v;
emit WalletCapSet(v);
}
/// @notice Lower the number that will ever be minted. One direction only.
function setMintCap(uint256 v) external onlyOwner {
require(v >= minted, "below what is already minted");
require(v <= mintCap, "cap can only go down");
mintCap = v;
emit MintCapSet(v);
}
function setOpen(bool v) external onlyOwner {
open = v;
emit OpenSet(v);
}
function setPrice(uint256 v) external onlyOwner {
require(v > 0, "zero price");
price = v;
emit PriceSet(v);
}
function setLedger(address l) external onlyOwner {
require(!artFrozen, "art is frozen");
ledger = l;
if (minted > 0) emit BatchMetadataUpdate(1, minted);
}
/// @notice Give up the ability to change the renderer, permanently.
function freezeArt() external onlyOwner {
artFrozen = true;
}
function setTreasury(address t) external onlyOwner {
require(t != address(0), "zero addr");
treasury = t;
}
function setRoyalty(address rcv, uint96 bps) external onlyOwner {
require(rcv != address(0), "zero addr");
_setDefaultRoyalty(rcv, bps);
}
/* --------------------------------------------------- creator earnings */
function getTransferValidator() external view returns (address) {
return transferValidator;
}
function getTransferValidationFunction()
external
pure
returns (bytes4 functionSignature, bool isViewFunction)
{
return (ITransferValidator.validateTransfer.selector, true);
}
/// @notice Install or clear the enforcer. Clearing it is always available
/// and is the escape hatch if a validator ever starts rejecting
/// legitimate transfers.
function setTransferValidator(address validator) external onlyOwner {
address old = transferValidator;
transferValidator = validator;
emit TransferValidatorUpdated(old, validator);
}
/// @dev The validator is asked about SALES and nothing else — minting,
/// airdropping and burning all pass. An airdrop that a validator can
/// block is an airdrop that does not arrive; that has already happened
/// once to a collection in this family.
function _update(address to, uint256 tokenId, address auth)
internal
override
returns (address)
{
address from = _ownerOf(tokenId);
address validator = transferValidator;
if (validator != address(0) && from != address(0) && to != address(0)) {
ITransferValidator(validator).validateTransfer(_msgSender(), from, to, tokenId);
}
return super._update(to, tokenId, auth);
}
/* ---------------------------- THE COLLECTION --------------------------- */
/// @notice Where a marketplace sends people who click through.
string public externalLink = "https://cowsbrokers.xyz";
function setExternalLink(string calldata l) external onlyOwner {
externalLink = l;
}
/// @notice Collection-level metadata, the way marketplaces ask for it.
function contractURI() external view returns (string memory) {
return string.concat(
"data:application/json;base64,", Base64.encode(bytes(contractJson()))
);
}
/// @notice The same thing unencoded, readable straight off a block explorer.
function contractJson() public view returns (string memory) {
(address receiver, uint256 bps) = royaltyInfo(0, 10_000);
return string.concat(
'{"name":"Cows Brokers",',
'"description":"5,000 animated pixel cow agents on Robinhood Chain, drawn entirely by ',
"the contract - no image is stored anywhere. Buy $COW, burn it, take your Cow. A Cow is ",
"permanent: nothing in this collection decays, expires or can be destroyed. Part of the ",
"supply is reserved to airdrop to holders of the first Cows Brokers contract; the ",
"reserved figure is public on chain as reserve(). ",
'UNOFFICIAL - Cows Brokers is an independent project and is not affiliated with, ',
'endorsed by, or connected to Robinhood Markets, Inc. or any of its subsidiaries.",',
'"external_link":"', externalLink, '",',
'"seller_fee_basis_points":', Strings.toString(bps), ',',
'"fee_recipient":"', Strings.toHexString(uint256(uint160(receiver)), 20), '"}'
);
}
/* ------------------------------------------------------------- the art */
function tokenURI(uint256 id) public view override returns (string memory) {
_requireOwned(id);
if (ledger != address(0)) {
// A low-level call, not try/catch: the compiler's extcodesize check
// would itself revert on a ledger with no code, and that revert is
// not catchable. A broken tokenURI is a delisted collection.
(bool ok, bytes memory data) = ledger.staticcall(
abi.encodeWithSelector(ILedger.tokenJson.selector, id, lookOf(id), 0)
);
if (ok && data.length > 0) return abi.decode(data, (string));
}
return "";
}
function supportsInterface(bytes4 iid)
public
view
override(ERC721Enumerable, ERC2981, IERC165)
returns (bool)
{
return iid == 0x49064906 // ERC-4906, metadata updates
|| iid == type(ICreatorToken).interfaceId
|| super.supportsInterface(iid);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_treasury",
"type": "address",
"internalType": "address"
},
{
"name": "_cow",
"type": "address",
"internalType": "address"
},
{
"name": "genesis",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "_price",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ERC2981InvalidDefaultRoyalty",
"type": "error",
"inputs": [
{
"name": "numerator",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "denominator",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC2981InvalidDefaultRoyaltyReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC2981InvalidTokenRoyalty",
"type": "error",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "numerator",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "denominator",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC2981InvalidTokenRoyaltyReceiver",
"type": "error",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721EnumerableForbiddenBatchMint",
"type": "error",
"inputs": []
},
{
"name": "ERC721IncorrectOwner",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InsufficientApproval",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC721InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidOperator",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721NonexistentToken",
"type": "error",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC721OutOfBoundsIndex",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "StringsInsufficientHexLength",
"type": "error",
"inputs": [
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "length",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "AirdropSealed",
"type": "event",
"inputs": [],
"anonymous": false
},
{
"name": "Airdropped",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ApprovalForAll",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "BatchMetadataUpdate",
"type": "event",
"inputs": [
{
"name": "_fromTokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "_toTokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MetadataUpdate",
"type": "event",
"inputs": [
{
"name": "_tokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MintCapSet",
"type": "event",
"inputs": [
{
"name": "cap",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Minted",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OpenSet",
"type": "event",
"inputs": [
{
"name": "open",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PriceSet",
"type": "event",
"inputs": [
{
"name": "price",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ReserveSet",
"type": "event",
"inputs": [
{
"name": "reserve",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Sealed",
"type": "event",
"inputs": [
{
"name": "sealBlock",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Shuffled",
"type": "event",
"inputs": [
{
"name": "offset",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "TransferValidatorUpdated",
"type": "event",
"inputs": [
{
"name": "oldValidator",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "newValidator",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "WalletCapSet",
"type": "event",
"inputs": [
{
"name": "cap",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "airdrop",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "qty",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "airdropSealed",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "airdropped",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "artFrozen",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "contractJson",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "contractURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "cow",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ICowToken"
}
],
"stateMutability": "view"
},
{
"name": "externalLink",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "freezeArt",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "getApproved",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getTransferValidationFunction",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "functionSignature",
"type": "bytes4",
"internalType": "bytes4"
},
{
"name": "isViewFunction",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "pure"
},
{
"name": "getTransferValidator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "isApprovedForAll",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "ledger",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "left",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "lookOf",
"type": "function",
"inputs": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [
{
"name": "qty",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "mintCap",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "minted",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "mintedBy",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "offset",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "open",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "ownerOf",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "price",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "quote",
"type": "function",
"inputs": [
{
"name": "qty",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "reserve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "rowOf",
"type": "function",
"inputs": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "royaltyInfo",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "salePrice",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sealAirdrop",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sealBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "sealCollection",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setApprovalForAll",
"type": "function",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setExternalLink",
"type": "function",
"inputs": [
{
"name": "l",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setLedger",
"type": "function",
"inputs": [
{
"name": "l",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMintCap",
"type": "function",
"inputs": [
{
"name": "v",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setOpen",
"type": "function",
"inputs": [
{
"name": "v",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPrice",
"type": "function",
"inputs": [
{
"name": "v",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setReserve",
"type": "function",
"inputs": [
{
"name": "v",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRoyalty",
"type": "function",
"inputs": [
{
"name": "rcv",
"type": "address",
"internalType": "address"
},
{
"name": "bps",
"type": "uint96",
"internalType": "uint96"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTransferValidator",
"type": "function",
"inputs": [
{
"name": "validator",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTreasury",
"type": "function",
"inputs": [
{
"name": "t",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setWalletCap",
"type": "function",
"inputs": [
{
"name": "v",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "shuffle",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "shuffled",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "iid",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tokenByIndex",
"type": "function",
"inputs": [
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "tokenOfOwnerByIndex",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"type": "function",
"inputs": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferValidator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "treasury",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "vault",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "walletCap",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
}
]0x60c0604052346100d15761411b803803809161001a826100e9565b60c03960808160c00191126100d157610031610137565b61003b60e061014d565b6101005192906001600160401b0384116100d1578160df850112156100d1578360c0015161006881610161565b926100766040519485610114565b81845260e082870101116100d1576020815f9260e06100a298018387015e84010152610120519261037e565b604051613914908161080782396080518181816119470152611d66015260a051818181611fa10152612e570152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b60c0601f91909101601f19168101906001600160401b0382119082101761010f57604052565b6100d5565b601f909101601f19168101906001600160401b0382119082101761010f57604052565b60c051906001600160a01b03821682036100d157565b51906001600160a01b03821682036100d157565b6001600160401b03811161010f57601f01601f191660200190565b90600182811c921680156101aa575b602083101461019657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161018b565b8181106101bf575050565b5f81556001016101b4565b90601f82116101d7575050565b610202915f805260205f20906020601f840160051c83019310610204575b601f0160051c01906101b4565b565b90915081906101f5565b9190601f811161021d57505050565b610202925f5260205f20906020601f840160051c8301931061020457601f0160051c01906101b4565b610251601b5461017c565b601f8111610281575b507f68747470733a2f2f636f777362726f6b6572732e78797a00000000000000002e601b55565b601b5f526102b990601f0160051c7f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1908101906101b4565b5f61025a565b156102c657565b60405162461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b1561031257565b60405162461bcd60e51b815260206004820152600b60248201526a6261642067656e6573697360a81b6044820152606490fd5b1561034c57565b60405162461bcd60e51b815260206004820152600a6024820152697a65726f20707269636560b01b6044820152606490fd5b91926104556102029461045d936103d86040805161039c8282610114565b600c81526b436f77732042726f6b65727360a01b60208201526103c182519283610114565b6004825263434f575360e01b602083015233610474565b6103e26014600d55565b6103ed611388600e55565b6103f5610246565b6001600160a01b038616151580610462575b610410906102bf565b61041e8251613a981461030b565b610429841515610345565b601180546001600160a01b0319166001600160a01b0388161790556001600160a01b03166080526106e1565b60a052601255565b61076a565b506001600160a01b0381161515610407565b815191939290916001600160401b03811161010f5761049c816104975f5461017c565b6101ca565b6020601f82116001146105375790806104d0926104d79596975f9261052c575b50508160011b915f199060031b1c19161790565b5f556105bc565b6001600160a01b03811615610518576104ef906107be565b61020260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b631e4fbdf760e01b5f90815260045260245ffd5b015190505f806104bc565b5f8052601f198216957f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563965f5b8181106105a45750916104d79596979184600195941061058c575b505050811b015f556105bc565b01515f1960f88460031b161c191690555f808061057f565b83830151895560019098019760209384019301610564565b80519091906001600160401b03811161010f576105e5816105de60015461017c565b600161020e565b602092601f821160011461061957610614929382915f9261052c5750508160011b915f199060031b1c19161790565b600155565b60015f52601f198216937fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b86811061067d5750836001959610610665575b505050811b01600155565b01515f1960f88460031b161c191690555f808061065a565b91926020600181928685015181550194019201610647565b1561069c57565b60405162461bcd60e51b815260206004820152601360248201527f7661756c743a207772697465206661696c6564000000000000000000000000006044820152606490fd5b805190600182018092116107655761074c602f60209260405193849181830196606360f81b885263ffffffff60e01b9060e01b1660218401526880600e6000396000f360b81b60258401528051918291018484015e81015f838201520301601f198101835282610114565b51905ff0906102026001600160a01b0383161515610695565b6102f7565b6001600160a01b031680156107ab5760405190610788604083610114565b8082526101f46020909201919091526001600160a01b0316607d60a21b17600a55565b635b6cc80560e11b5f525f60045260245ffd5b600c80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a356fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461040f5780630396ec001461040a57806306fdde0314610405578063081812fc14610400578063095ea7b3146103fb578063098144d4146103ce5780630d705df6146103f657806310e6b143146103f157806316e64048146103ec57806318160ddd146103e757806319cc02aa146103e25780631f917921146103dd57806323b872dd146103d85780632520bf04146103d357806329e38d5e146103ce5780632a55205a146103c95780632f745c59146103c45780633246887d146103bf5780633cef28d2146103ba5780633d522361146103b55780634070a0c9146103b05780634256dbe3146103ab57806342842e0e146103a65780634f02c420146103a15780634f6ccce71461039c57806356397c351461039757806358950c22146103925780635b9db8981461038d57806361d027b3146103885780636352211e1461038357806365a646681461037e57806367243482146103795780636fdca5e01461037457806370a082311461036f578063715018a61461036a57806376c71ca1146103655780638ac1bb98146103605780638da5cb5b1461035b5780638e3ddfc7146103565780638f2fc60b1461035157806391b7f5ed1461034c57806395d89b411461034757806397fd1c29146103425780639fab78411461033d578063a035b1fe14610338578063a0712d6814610333578063a22cb4651461032e578063a9fc664e14610329578063b88d4fde14610324578063bffa7fe81461031f578063c50497ae1461031a578063c87b56dd14610315578063cd3293de14610310578063d1154b6c1461030b578063d555654414610306578063dfbf306d14610301578063e8a3d485146102fc578063e985e9c5146102f7578063ed1bd76c146102f2578063f0f44260146102ed578063f2fde38b146102e8578063fa8bd61b146102e3578063fbfa77cf146102de5763fcfff16f146102d9575f80fd5b611fd0565b611f8c565b611f61565b611ed7565b611e87565b611e66565b611e02565b611d95565b611d51565b611d34565b611cbb565b611c9e565b611c7f565b611c63565b611c41565b611bb1565b611b0f565b611a41565b611879565b61185c565b61183f565b611812565b61176d565b6116e8565b611606565b6115d7565b6115af565b61158d565b611570565b611515565b6114ee565b61148c565b611232565b61117e565b61114e565b611126565b611081565b610ff6565b610fca565b610f64565b610f47565b610f12565b610e52565b610d65565b610d47565b610d0c565b610c39565b610bbf565b610b38565b61079d565b610a6b565b610a54565b6108ec565b6108cf565b6108b2565b610854565b6107ec565b6107c5565b610692565b610645565b610572565b610515565b61042a565b6001600160e01b031981160361042657565b5f80fd5b346104265760203660031901126104265761047f60043561044a81610414565b63ffffffff60e01b16632483248360e11b81149081156104fa575b8115610483575b5060405190151581529081906020820190565b0390f35b63152a902d60e11b81149150811561049d575b505f61046c565b63780e9d6360e01b8114915081156104b7575b505f610496565b6380ac58cd60e01b8114915081156104e9575b81156104d8575b505f6104b0565b6301ffc9a760e01b1490505f6104d1565b635b5e139f60e01b811491506104ca565b632b435fdb60e21b81149150610465565b5f91031261042657565b34610426575f36600319011261042657602060ff60115460a01c166040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061056f92818152019061053a565b90565b34610426575f366003190112610426576040515f5f5461059181611013565b808452906001811690811561062157506001146105c5575b61047f836105b98185038261105f565b6040519182918261055e565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610607575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916105ef565b60ff191660208086019190915291151560051b840190910191506105b990506105a9565b346104265760203660031901126104265760043561066281612ef0565b505f526004602052602060018060a01b0360405f205416604051908152f35b6001600160a01b0381160361042657565b34610426576040366003190112610426576004356106af81610681565b602435906106bc82612ef0565b3315158061078a575b8061074c575b61073957610737926107189181906001600160a01b0385811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600460205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b005b63a9fbf51f60e01b5f523360045260245ffd5b5060ff6107823361076d8460018060a01b03165f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b5416156106cb565b506001600160a01b0381163314156106c5565b34610426575f36600319011261042657601a546040516001600160a01b039091168152602090f35b34610426575f366003190112610426576040805163657711f560e11b815260016020820152f35b34610426575f36600319011261042657610804612f24565b61081360ff6018541615611ff2565b6001430180431161084f576020817fba34121df90b0e77cf350d3550142d4cd66df49d5ac6c50c9560399f8820a06192601955604051908152a1005b612031565b34610426575f36600319011261042657600f5461138803611388811161084f57600e548181106108aa575b50601354808211156108a057810390811161084f576020905b604051908152f35b505060205f610898565b90505f61087f565b34610426575f366003190112610426576020600854604051908152f35b34610426575f366003190112610426576020601454604051908152f35b346104265760203660031901126104265760043567ffffffffffffffff811161042657366023820112156104265780600401359067ffffffffffffffff82116104265736602483830101116104265760240190610947612f24565b67ffffffffffffffff8111610a235761096a81610965601b54611013565b61207b565b5f601f82116001146109a7578190610997935f9261099c575b50508160011b915f199060031b1c19161790565b601b55005b013590505f80610983565b601b5f52601f198216927f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1915f5b858110610a0b575083600195106109f2575b505050811b01601b55005b01355f19600384901b60f8161c191690555f80806109e7565b909260206001819286860135815501940191016109d5565b61104b565b606090600319011261042657600435610a4081610681565b90602435610a4d81610681565b9060443590565b3461042657610737610a6536610a28565b916120cb565b34610426575f36600319011261042657610a8a60ff6018541615611ff2565b6019548015610b0657610ab981610aa5610abe9343116121f5565b40610ab181151561222d565b611388900690565b601755565b610ad0600160ff196018541617601855565b6017546040519081527faea646e052f85d2e7b1b634b62c2d6d55d38a8901dc11a296ad7a40c2b5b5efb9080602081015b0390a1005b60405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cd9585b195960b21b6044820152606490fd5b34610426576040366003190112610426576004355f908152600b60205260409020546001600160a01b038116906024359060a01c8215610ba7575b612710916001600160601b03610b8a921690612298565b604080516001600160a01b03949094168452919004602083015290f35b50600a546001600160a01b038116925060a01c610b73565b3461042657604036600319011261042657600435610bdc81610681565b60243590610be98161258f565b821015610c1c576001600160a01b03165f9081526006602090815260408083209383529281529082902054915191825290f35b63295f44f760e21b5f5260018060a01b031660045260245260445ffd5b3461042657602036600319011261042657600435610c5681610681565b610c5e612f24565b60ff60115460a01c16610cd75760108054610100600160a81b03191660089290921b610100600160a81b031691909117905560135480610c9a57005b610b017f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9160405191829182919060206040840193600181520152565b60405162461bcd60e51b815260206004820152600d60248201526c30b93a1034b990333937bd32b760991b6044820152606490fd5b3461042657602036600319011261042657600435610d2981610681565b60018060a01b03165f526016602052602060405f2054604051908152f35b3461042657602036600319011261042657602061089860043561235a565b3461042657602036600319011261042657600435610d81612f24565b6013548110610e0d57600e548111610dd157610b0181610dc17fcda03296b648d791f2cee5a5af4b32860d8a3d01fae4126b12b408122400376793600e55565b6040519081529081906020820190565b60405162461bcd60e51b815260206004820152601460248201527331b0b81031b0b71037b7363c9033b7903237bbb760611b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f62656c6f77207768617420697320616c7265616479206d696e746564000000006044820152606490fd5b3461042657602036600319011261042657600435610e6e612f24565b610e7d60ff60105416156123d5565b600f548110610ecd57610b0181610ec4611388610ebd7ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456595601354612061565b1115612415565b610dc181600f55565b60405162461bcd60e51b815260206004820152601a60248201527f74686520726573657276652063616e206f6e6c7920676f2075700000000000006044820152606490fd5b3461042657610737610f2336610a28565b9060405192610f3360208561105f565b5f8452610f418383836120cb565b336132bf565b34610426575f366003190112610426576020601354604051908152f35b3461042657602036600319011261042657600435600854811015610fb45760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30154604051908152602090f35b63295f44f760e21b5f525f60045260245260445ffd5b34610426575f3660031901126104265760105460405160089190911c6001600160a01b03168152602090f35b34610426575f366003190112610426576020600d54604051908152f35b90600182811c92168015611041575b602083101461102d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611022565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610a2357604052565b34610426575f366003190112610426576040515f601b546110a181611013565b808452906001811690811561062157506001146110c85761047f836105b98185038261105f565b601b5f9081527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1939250905b80821061110c575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916110f4565b34610426575f366003190112610426576011546040516001600160a01b039091168152602090f35b3461042657602036600319011261042657602061116c600435612ef0565b6040516001600160a01b039091168152f35b346104265760203660031901126104265760043561119a612f24565b80156111d1576020817f5096cc7d3b7f494e6f07c51c1c2078170b67ec0c37360b56e3f668f86c1484e392600d55604051908152a1005b60405162461bcd60e51b815260206004820152600860248201526707a65726f206361760c41b6044820152606490fd5b9181601f840112156104265782359167ffffffffffffffff8311610426576020808501948460051b01011161042657565b346104265760403660031901126104265760043567ffffffffffffffff811161042657611263903690600401611201565b9060243567ffffffffffffffff811161042657611284903690600401611201565b9161128d612f24565b611295612f4b565b6112b06112ab6112a760105460ff1690565b1590565b6123d5565b6112c46112bf60185460ff1690565b61231f565b6112cf83851461247b565b6112da8415156124b9565b5f935f5b81811061142557506112f8611388610ebd87601354612061565b5f905b808210611383578561131761131282601454612061565b601455565b600f5480821061137157505061132c5f600f55565b600f546040519081527ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456590602090a161073760015f5160206138bf5f395f51905f5255565b61132c9161137e9161206e565b600f55565b90919293945f5b6113958488886124f3565b35811015611417576001906113ab601354612581565b6113b481601355565b6113d0816113cb6113c689898c6124f3565b612508565b612f83565b6113ed6113e16113c688888b6124f3565b6001600160a01b031690565b7f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa5f80a30161138a565b5094939291600101906112fb565b9461147260019161144a6114436113e16113c68b888a9b9c9a6124f3565b1515612512565b61146061145889878a6124f3565b35151561254a565b61146b8886896124f3565b3590612061565b9501939291936112de565b60243590811515820361042657565b34610426576020366003190112610426576004358015158091036104265760207f50ea4db57628851a1970ad4a3cc76cab7eb7e50b8526f7786e429df90f099d3d916114d6612f24565b60ff196015541660ff821617601555604051908152a1005b3461042657602036600319011261042657602061089860043561151081610681565b61258f565b34610426575f3660031901126104265761152d612f24565b600c80546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610426575f366003190112610426576020600e54604051908152f35b34610426575f36600319011261042657602060ff601054166040519015158152f35b34610426575f36600319011261042657600c546040516001600160a01b039091168152602090f35b34610426575f3660031901126104265761047f6115f26129e4565b60405191829160208352602083019061053a565b346104265760403660031901126104265760043561162381610681565b602435906001600160601b03821680830361042657611640612f24565b6001600160a01b03821615906116568215612512565b61271081116116d057506116bd5761169561073792611685611676611b84565b6001600160a01b039094168452565b6001600160601b03166020830152565b80516020919091015160a01b6001600160a01b0319166001600160a01b039190911617600a55565b635b6cc80560e11b5f525f60045260245ffd5b636f483d0960e01b5f5260045261271060245260445ffd5b3461042657602036600319011261042657600435611704612f24565b801561173b576020817f6bfd5e75539a9d2626425a2e2922675256b219fe546d63dad56011759b9a2f6692601255604051908152a1005b60405162461bcd60e51b815260206004820152600a6024820152697a65726f20707269636560b01b6044820152606490fd5b34610426575f366003190112610426576040515f60015461178d81611013565b808452906001811690811561062157506001146117b45761047f836105b98185038261105f565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106117f8575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916117e0565b34610426575f3660031901126104265761182a612f24565b6011805460ff60a01b1916600160a01b179055005b34610426575f366003190112610426576020601954604051908152f35b34610426575f366003190112610426576020601254604051908152f35b3461042657602036600319011261042657600435611895612f4b565b6118a96118a460155460ff1690565b612b60565b6118b86112bf60185460ff1690565b6118c381151561254a565b6118ff6113886118f86118ef846013546118ea6118e08383612061565b600e541015612ba1565b612061565b600f5490612061565b1115612bd8565b335f9081526016602052604090206119279061191d90839054612061565b600d541015612c30565b335f908152601660205260409020611940828254612061565b90556012547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169061197b908390612298565b90803b156104265760405163079cc67960e41b815233600482015260248101929092525f908290604490829084905af18015611a3c57611a22575b505f5b8181106119d65761073760015f5160206138bf5f395f51905f5255565b6001906119e4601354612581565b6119ed81601355565b6119f78133612f83565b337f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe5f80a3016119b9565b80611a305f611a369361105f565b8061050b565b5f6119b6565b612c6e565b3461042657604036600319011261042657600435611a5e81610681565b611a6661147d565b3315611afc576001600160a01b038216918215611ae95781611aa6611ab792335f52600560205260405f209060018060a01b03165f5260205260405f2090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b82630b61174360e31b5f5260045260245ffd5b63a9fbf51f60e01b5f525f60045260245ffd5b34610426576020366003190112610426577fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac6040600435611b4f81610681565b611b57612f24565b601a80546001600160a01b039283166001600160a01b0319821681179092558351921682526020820152a1005b60405190611b9360408361105f565b565b67ffffffffffffffff8111610a2357601f01601f191660200190565b3461042657608036600319011261042657600435611bce81610681565b60243590611bdb82610681565b6044356064359267ffffffffffffffff8411610426573660238501121561042657836004013592611c0b84611b95565b93611c19604051958661105f565b8085523660248288010111610426576020815f92602461073799018389013786010152612c79565b34610426575f36600319011261042657602060ff601854166040519015158152f35b34610426575f3660031901126104265760206040516113888152f35b346104265760203660031901126104265761047f6115f2600435612d1d565b34610426575f366003190112610426576020600f54604051908152f35b34610426575f36600319011261042657611cd3612f24565b600160ff1960105416176010555f600f557ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456560206040517ff0a577bd6f3b2dd96de12db61f10f260d40b696b172a916f000d4bab009d23f15f80a15f8152a1005b34610426575f366003190112610426576020601754604051908152f35b34610426575f366003190112610426576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610426575f3660031901126104265761047f611df46115f2611dbe611db96129e4565b6134b6565b6040519283917f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020840152603d83019061262a565b03601f19810183528261105f565b3461042657604036600319011261042657602060ff611e5a600435611e2681610681565b60243590611e3382610681565b60018060a01b03165f526005845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610426576020366003190112610426576020610898600435601254612298565b3461042657602036600319011261042657600435611ea481610681565b611eac612f24565b6001600160a01b0316611ec0811515612512565b6001600160601b0360a01b60115416176011555f80f35b3461042657602036600319011261042657600435611ef481610681565b611efc612f24565b6001600160a01b03168015611f4e57600c80546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610426576020366003190112610426576020611f7f600435612e11565b62ffffff60405191168152f35b34610426575f366003190112610426576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610426575f36600319011261042657602060ff601554166040519015158152f35b15611ff957565b60405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481cda1d59999b195960821b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b906002820180921161084f57565b906001820180921161084f57565b9190820180921161084f57565b9190820391821161084f57565b601f8111612087575050565b601b5f5260205f20906020601f840160051c830193106120c1575b601f0160051c01905b8181106120b6575050565b5f81556001016120ab565b90915081906120a2565b91906001600160a01b038116156121e2576120fe6120f1835f52600260205260405f2090565b546001600160a01b031690565b601a549091906001600160a01b0316801515806121d0575b806121c8575b612160575b5061212f915082339161337b565b6001600160a01b03908116921680830361214857505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b803b156104265760405163657711f560e11b81523360048201526001600160a01b0393841660248201529282166044840152606483018490525f90839060849082905afa918215611a3c5761212f92156121215780611a305f6121c29361105f565b5f612121565b50600161211c565b506001600160a01b0383161515612116565b633250574960e11b5f525f60045260245ffd5b156121fc57565b60405162461bcd60e51b8152602060048201526009602482015268746f6f206561726c7960b81b6044820152606490fd5b1561223457565b60405162461bcd60e51b815260206004820152600c60248201526b1cd9585b08195e1c1a5c995960a21b6044820152606490fd5b600181901b91906001600160ff1b0381160361084f57565b600281901b91906001600160fe1b0381160361084f57565b8181029291811591840414171561084f57565b5f8052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546001600160a01b038116919060a01c8215612307575b6001600160601b0316916127108381020480930361084f579190565b50600a546001600160a01b038116925060a01c6122eb565b1561232657565b60405162461bcd60e51b815260206004820152600c60248201526b1b9bdd081cda1d59999b195960a21b6044820152606490fd5b61236860ff6018541661231f565b6001811015806123c9575b15612397575f19810190811161084f57601754810180911161084f57611388900690565b60405162461bcd60e51b815260206004820152600a6024820152691b9bc81cdd58da081a5960b21b6044820152606490fd5b50611388811115612373565b156123dc57565b60405162461bcd60e51b8152602060048201526011602482015270185a5c991c9bdc081a5cc81cd9585b1959607a1b6044820152606490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600f60248201526e706173742074686520737570706c7960881b6044820152606490fd5b6040519061246260208361105f565b5f8252565b634e487b7160e01b5f52603260045260245ffd5b1561248257565b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b156124c057565b60405162461bcd60e51b815260206004820152600b60248201526a0cadae0e8f240c4c2e8c6d60ab1b6044820152606490fd5b91908110156125035760051b0190565b612467565b3561056f81610681565b1561251957565b60405162461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b1561255157565b60405162461bcd60e51b81526020600482015260086024820152677a65726f2071747960c01b6044820152606490fd5b5f19811461084f5760010190565b6001600160a01b031680156125ad575f52600360205260405f205490565b6322718ad960e21b5f525f60045260245ffd5b5f92918154916125cf83611013565b926001811690811561261757506001146125e857505050565b90919293505f5260205f205f905b8382106126035750500190565b6001816020925484860152019101906125f6565b60ff191683525050811515909102019150565b805191908290602001825e015f815290565b6040517f7b226e616d65223a22436f77732042726f6b657273222c00000000000000000060208201527f226465736372697074696f6e223a22352c30303020616e696d6174656420706960378201527f78656c20636f77206167656e7473206f6e20526f62696e686f6f6420436861696057820152740371610323930bbb71032b73a34b932b63c90313c9605d1b60778201527f74686520636f6e7472616374202d206e6f20696d6167652069732073746f7265608c8201527f6420616e7977686572652e204275792024434f572c206275726e2069742c207460ac8201527f616b6520796f757220436f772e204120436f772069732000000000000000000060cc8201527f7065726d616e656e743a206e6f7468696e6720696e207468697320636f6c6c6560e38201527f6374696f6e206465636179732c2065787069726573206f722063616e206265206101038201527f64657374726f7965642e2050617274206f6620746865200000000000000000006101238201527f737570706c7920697320726573657276656420746f2061697264726f7020746f61013a8201527f20686f6c64657273206f662074686520666972737420436f77732042726f6b6561015a82015270039399031b7b73a3930b1ba1d903a34329607d1b61017a8201527f726573657276656420666967757265206973207075626c6963206f6e2063686161018b82015270034b71030b9903932b9b2b93b329414971607d1b6101ab8201527f554e4f4646494349414c202d20436f77732042726f6b65727320697320616e206101bc8201527f696e646570656e64656e742070726f6a65637420616e64206973206e6f7420616101dc8201526f0333334b634b0ba32b2103bb4ba3416160851b6101fc8201527f656e646f727365642062792c206f7220636f6e6e656374656420746f20526f6261020c8201527f696e686f6f64204d61726b6574732c20496e632e206f7220616e79206f66206961022c820152711d1cc81cdd589cda591a585c9a595ccb888b60721b61024c820152701132bc3a32b93730b62fb634b735911d1160791b61025e8201529291839161296061026f8401601b6125c0565b61088b60f21b81527f2273656c6c65725f6665655f62617369735f706f696e7473223a0000000000006002820152601c0161299a9161262a565b600b60fa1b815270113332b2afb932b1b4b834b2b73a111d1160791b60018201526012016129c79161262a565b61227d60f01b815203601d1981018352600201611b93908361105f565b6129ec6122ab565b80815f9272184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015612b3a575b50806d04ee2d6d415b85acef8100000000600a921015612b1e575b662386f26fc10000811015612b09575b6305f5e100811015612af7575b612710811015612ae7575b6064811015612ad8575b1015612acd575b612a9f6021612a7460018501613094565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b908115612aaf57612a9f90612a79565b5061056f92612ac791506001600160a01b03166130d2565b9061263c565b600190910190612a63565b60029060649004930192612a5c565b6004906127109004930192612a52565b6008906305f5e1009004930192612a47565b601090662386f26fc100009004930192612a3a565b6020906d04ee2d6d415b85acef81000000009004930192612a2a565b6040935072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a612a0f565b15612b6757565b60405162461bcd60e51b81526020600482015260126024820152711d1a19481a195c99081a5cc818db1bdcd95960721b6044820152606490fd5b15612ba857565b60405162461bcd60e51b81526020600482015260086024820152671cdbdb19081bdd5d60c21b6044820152606490fd5b15612bdf57565b60405162461bcd60e51b8152602060048201526024808201527f746865207265737420697320726573657276656420666f722074686520616972604482015263064726f760e41b6064820152608490fd5b15612c3757565b60405162461bcd60e51b815260206004820152600f60248201526e1bdd995c881e5bdd5c881b1a5b5a5d608a1b6044820152606490fd5b6040513d5f823e3d90fd5b90611b93939291610f418383836120cb565b3d15612cb5573d90612c9c82611b95565b91612caa604051938461105f565b82523d5f602084013e565b606090565b6020818303126104265780519067ffffffffffffffff8211610426570181601f8201121561042657805190612cee82611b95565b92612cfc604051948561105f565b8284526020838301011161042657815f9260208093018386015e8301015290565b612d2681612ef0565b5060105460081c6001600160a01b0316906001600160a01b038216612d50575b505061056f612453565b5f9181611df4612d99612d638695612e11565b60405163906deffd60e01b60208201908152602482019590955262ffffff90911660448201525f60648201529182906084820190565b51915afa612da5612c8b565b9080612dc9575b612db65780612d46565b8060208061056f93518301019101612cba565b5080511515612dac565b8051600110156125035760210190565b8051600210156125035760220190565b8051156125035760200190565b908151811015612503570160200190565b612e1a9061235a565b60038102908082046003149015171561084f576040805190612e3c818361105f565b60038252601f190136602083013760036001602083019301837f00000000000000000000000000000000000000000000000000000000000000003c80511561250357612ee7612eab612ea5612ecc612eb7612eb1612eab612ea561056f9960ff60f81b90511690565b60f81c90565b60ff1690565b60101b90565b612ee0612eda612eab612ea5612ecc8a612dd3565b516001600160f81b03191690565b60081b90565b1794612de3565b1762ffffff1690565b5f818152600260205260409020546001600160a01b0316908115612f12575090565b637e27328960e01b5f5260045260245ffd5b600c546001600160a01b03163303612f3857565b63118cdaa760e01b5f523360045260245ffd5b60025f5160206138bf5f395f51905f525414612f745760025f5160206138bf5f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b9060405190612f9360208361105f565b5f82526001600160a01b038316156121e257612fba6120f1825f52600260205260405f2090565b601a546001600160a01b031680151580613082575b8061307a575b613011575b5050612fe75f828561337b565b6001600160a01b0316612ffe57611b9392336131ce565b6339e3563760e11b5f525f60045260245ffd5b803b156104265760405163657711f560e11b81523360048201526001600160a01b0392831660248201529185166044830152606482018390525f90829060849082905afa8015611a3c57613066575b80612fda565b80611a305f6130749361105f565b5f613060565b506001612fd5565b506001600160a01b0382161515612fcf565b9061309e82611b95565b6130ab604051918261105f565b82815280926130bc601f1991611b95565b0190602036910137565b801561084f575f190190565b806130ed6130e86130e36014612268565b612045565b613094565b9160306130f984612df3565b53607861310584612dd3565b536131186131136014612268565b612053565b600181116131405750613129575090565b63e22e27eb60e01b5f52600452601460245260445ffd5b90600f81166010811015612503576131839161317d916f181899199a1a9b1b9c1cb0b131b232b360811b901a6131768588612e00565b5360041c90565b916130c6565b613118565b90816020910312610426575161056f81610414565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261056f9291019061053a565b9092833b6131dd575b50505050565b604051630a85bd0160e11b81529260209284928392613201925f906004860161319d565b03815f6001600160a01b0387165af15f918161328e575b506132525750613226612c8b565b805191908261324b57633250574960e11b5f526001600160a01b03821660045260245ffd5b6020915001fd5b6001600160e01b03191663757a42ff60e11b0161327357505f8080806131d7565b633250574960e11b5f526001600160a01b031660045260245ffd5b6132b191925060203d6020116132b8575b6132a9818361105f565b810190613188565b905f613218565b503d61329f565b939193843b6132d0575b5050505050565b6132f16020936040519586948594630a85bd0160e11b86526004860161319d565b03815f6001600160a01b0387165af15f9181613338575b506133165750613226612c8b565b6001600160e01b03191663757a42ff60e11b0161327357505f808080806132c9565b61335291925060203d6020116132b8576132a9818361105f565b905f613308565b61336b905f52600460205260405f2090565b80546001600160a01b0319169055565b5f828152600260205260409020549091906001600160a01b031692816001600160a01b0382166134a5575b50506001600160a01b0383168015908115613479575b6001600160a01b038416918215908115613456575b6133e786610718875f52600260205260405f2090565b8484847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4156134405761341c84613658565b1561342d57505061056f91506136f7565b0361343757505090565b61056f916136b4565b81831461341c5761345184876135d5565b61341c565b6001600160a01b0386165f908152600360205260409020600181540190556133d1565b61348283613359565b6001600160a01b0385165f90815260036020526040902080545f190190556133bc565b6134af91856137e6565b5f816133a6565b908151156135cb576134da6134d56134ce8451612045565b6003900490565b612280565b90604051917f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f603f52602083018480518101602081018051915f82525b80891061358f575060209596975090600392915251068060011461357a5760021461356d575b50808452830101604052565b603d905f1901535f613561565b50603d90815f1982015360011901535f613561565b939760036004910198603f8a51818160121c165183538181600c1c16516001840153818160061c1651600284015316516003820153019361353b565b905061056f612453565b5f9161362a916135e48161258f565b91808552600760205260408520549160018060a01b031685526006602052604085209183810361362d575b5084526007602052836040812055905f5260205260405f2090565b55565b838652826020526040862054818752836020528060408820558652600760205260408620555f61360f565b600854815f5260096020528060405f205568010000000000000000811015610a2357600181016008556008548110156125035760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b906136be8261258f565b5f1981019290831161084f5760018060a01b03165f52600660205260405f20825f526020528060405f20555f52600760205260405f2055565b6008545f1981019181831161084f57805f5260096020528160405f20549310156125035760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee282015491831015612503577ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee383018290555f918252600960205260408083209390935581529081205560085480156137d2575f198101906008548210156125035760085f8181527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee29092019190915555565b634e487b7160e01b5f52603160045260245ffd5b9091906138046001600160a01b038416801515908161384c57501590565b61380d57505050565b6001600160a01b031661382c57637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f526001600160a01b0390911660045260245260445ffd5b6001600160a01b0384168082149250821561388c575b50811561386e57501590565b5f858152600460205260409020546001600160a01b03161415919050565b9091505f52600560205260ff6138b58660405f209060018060a01b03165f5260205260405f2090565b5416905f61386256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122058b182ff454285b0fa824b3174270b3798125aa2784868dc6fee0d3c046a4e3064736f6c634300081c00330000000000000000000000001c05c5ebbb7675fc77f65f19348ba7f94a003fdd00000000000000000000000026ba8d5d95de3e22dffa94ebbb26e1dd39ccceaa000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000003a9801334a00244a00842600a4e1008f03004a20002d310090ce00064200aa250026260002c600854000a84400c08c002c4400e4e3002c490091010048420064680044a30060e2004a8000f04e00e72c00c30c00668e01243000a8020006ee00024b00266200ca300062270070e8008087004ac400eca10030e401008500461100a2c8008f0200006c0004ec00265000420500434500e220008a0b00cc230068ad00886300c0f3008ee300c0a800ea2000024800c047000a80000ecc010b2100200a00486e0040800000a700620e00000600ca2a00068c00640e0106330006c300a8a500021000cb4000c63000304c00808200c86800280c006a4100205200c424000404006a3100a24100842300420d00684e00e84000ed2300d00a00c900004a0800223100290600406600c248004308004c20004406009011001126002913010c6f006e4600444e0002b2006b21002c69006c0a00628100d0a200a0260000050008900000c500084800d02000200800908c00080a00808500cc6800889200522600420400e06400c670012e0600064800220700c62000ae6300cae4002aaa01326a00b0a800e85300c0e3010f5200a42600b2af005242010f2300a1440120210049420030520020c8006e0400f120006866000a0b0003400068a000ea8d00868201034b00602100044b010d06006aac004aa00088200071050064e0004b290086e6004e51002ab1004422002c8d0060d000e489008f3000e2e100125000aa6600682a006e4800a8e000225300648900687300aaa3000c2b002e0100a0a4000ea0008a400020b0004e220020c7004610004a6000e02200454f00c44200a42b00870c00ca6500010c0000cf004a6a0027240082c7006146002f20006253006269004ee300a268000ef200004000272600026800e032000c460026c6003304003065000902000a2b00462a00112f006046010a20006f0e0008a00084ac0022320044c600854c00a8420020ec0086b0002e2000ca12002ef200034300484a00326000010a0004e0000ae60066b00064670010eb004a2800648400c2a400422e002e0000060e00442b0064f000326700726300e0820022680024c400a0670000250044c0008e7300ee120042820046ee002c4500a48500c22200228700206800675000884300a72400a84b004a83006d4600c02600cab0006666000e4a000e5100cb2e00632d00830a00323300e83101208700605200029000680b006e8000a12e006333000245006c3200682c000107006730004a4200e04c00c0ce002f0a004e800062f20032e9000cca00f06400884c000280004a0a0004460030240030c000a84e0020830080c800e4a400a628000ac40051430069200022c800b02e01101200606900a41000446a002c3000e14000ec0e0006c10062c801212b000ce200a86000a6a2000c6800929100d222002744000e3200034a00c8670022860108cb00ac48009006002c6600122100e2600012ca0020a600462c00846000d09300667300a48a004629000d260064e200430a008ae8000ee600ca4100824600a34c00702400aceb01000800aa2700902200c12a0061100070ee00450800f34e00924300307000ae44008b0100842200222e002a6000cac200828000c46600242900ab4000d10e006c4c00091200066400a0e0004d070050cc008e0400411200228100628800470500126a00eaed0024e80064cc00e842006c2d004b4b00e0e6000e8000906e0068d20104ab00684200102c00ac4000422000d212002a4c010024000a640129040010aa00126e002cef006c610022260044ee00cee8002ec000b26501060c00241000e08300424600252000888600e08400a88800ae8e00292100a82800015000c8ab00a2ca0040ab0000aa00ec26004eec00680a00cd0300aea4000c8b0008800060860064ae006080002d4200074e00aa4e00a84a0008ad00a6ea0002e0006469004330006a6e004427000ca000c60200470900b27200caca006680002a0200814a00aaeb008b02002e100003090032400008a400c8a000ecc2009060004d02010280006a6a002850004c9000d02600260100f00300a0c20010c000428a004d09004286004aa80004830068d0012508001306008652006ae100a4800046c700c50a00e64201001000d22100c46400e92000641200c6ea00474f00c52d006e8400a0440002c100064d00a28400ec29012d5200a0f300060300046a002a300030820020c300e4ca00808400cca800646100006001022900454c000428000101007240006b4000066b0072a0004ee700620a008c22000ccc0048c30052e00028a200309000e06e0042ce0026420008a800802600a62e002e9000e12000660000202a008ae500822b00409000412c008e6800b2c300c5070060ae0092a8008cc200d0c201126c00302e00a600004a6700628d00ee6700922600cc80010d20008cc600a20800464e00e103004a720021010006a400884800c24200a22d00b082002f50000c6c00a2240102600062c100a6a000506000246000e6240023020020d100706200684c00a2510008a50060af0000e000028b000669006252006e8500e34100a02c00c0640068c70000c000ed0e00ecc4000b49012202001342002ac000063100090000c673005266009048000f2300c28a002b460093420062ae00102300106600226a006d4d00724c00ae680004440041000024e600b0a400280500126200e202011104008a27006066000d4e00049200c430004ee6006c8a00007200460a012a6600aa2400e44400032a0022200033010042c200cb4800684600466f00490800ae0400211100b233002c7200cc5200e104000e0400450201114200534a000c330042c0004026000c60004843000e200024e700466d01030a00e24e012e4401226c00a52400d22400e4830006e5000b48006f4200404400466a00090b00512000a746000a2600690201122600648200628000a407004ae00022a000052400864c008224002f0400034d00220800866800a627000d2c000c0600c084004d420120f100e210008852004b440083120082a300f08b000b4401262700a28a00a80800202000ed410101240006c500426600112400870000830800a22e002c2e002866000a92000c8e0080c70012d000442500290200027000082700e4c400634a00427100aea2002cc900083300290000404600c540002ac400210000068900828700412b00686000032800430100530400ee2a006a2c00482400acc10122850008930022cc00e23000708000c0d2000ee90024840040e700302d00826500e84d00c08e0024b200282c00328800b026009030002422000c7100ef4100006a00630a0008ac002a4800e522008aa200c2ae000e2600002e00235200222200260a00283200a64400ec800060040000b100e4cf0008ea000f0900a0620102cc00a4c9000ec6012a0200314c00e045000cec00033000cc460084440084e80068f00042a100002c002e40010550004ee400892800082f00e02b0120a10112a001226000110a00a02f002a730126c400324800930000b06d00004100e92100c34e00324900c42600450300aa2600624b00a10e0046830006a000c92b00722500c42e008420003309008020002b0a00210200422c00821000ea8c0012ce00214600c84600c262004c2400a2c000e32c000e090004f00006c70060240088ea0022c000ae4100a26b008041006050006862003046006420000e2a00088e00a227000e1100262c00286f0040a60000a0008d410028430072e400ce4200e864000e0f00acc500e8c000846a00042e01020d00128000ef2b000f5000c24000e8e4000085000c62008466006830000a0c00eaa800a7400062e500a442006220010220003026006b0e0008e70108e600e42600074c001062010020002282010c53002e230020ee002e26008d0500c02a00c74200f260010406008ea2008e0900a68200612300828600b02c00062c0002e10012ab012000012271000032006108002cc000088f00cc200040220000e800202800050f00a90200a6a9004065001286004aa900e40b002a8f00b26000a66d00e86e0044f000482600b326006e64000ec700404800cec00004c200302b0086c0002e8600266600525200060f0072200050c000c43200e66500004c00022000286900270d000aca000200004f2300000000324b006060002a0600d26100840600090100695000272000c200008c2e00028400664c00ae40012c5300084c004c8100662c004ea900e84400286e00a029012a8200506100c267002081006e0e00e64600ae8600620000aa4401014b008d2a0092a1002ab000aaec01228d008e3100492a002e8100a30100224d00420a000cc200408100c22c0044cc0026a200040700a5470104c400c4c8008b0e00050400d2c600aea300e42000692e0046e200e2a4000212002e2201054800af110064ed002a220045050028420062c6012c8d0026e200cc6000aa2a000529008c28002922010660002ee101266800292600a4060120a400264700c44900a72000c40400290a008126010082011284000b0b00672700caf200a0c6008a8400a52200a6410012cd008e0000ea3000610b000620000aa800220e00a08500ca660002a60040b0002820002eb201268200a446008427006ec800a8520066b3003086002227000e5300c4a80001520106010020220022d20050020102460051420042e400210800e0ac00e046002c8e00caec004f220000c6004cc600468000b0c2002b44006a4e0052c601044a00892e000822002b270008e400827001092501054400d0e200a74700a69200282401072b0006a5000c660072c400222c00026a0028cc00d0080028d2000eb10052320042ca00c02c000a0f0020aa010446012048006aca00c4c900c113008aa800824700cb0e0012cb000a530048210090e500446600442a00712800ac8d0022690010400069530004f20030a5006f12002ed1000482006e01000ea5004a210010a2000e460062a000708a00626e00d082004ae900862f0002e400070400a4ee00292000e44600c66b00e4f000604000e8b300602200708900043000868700445000e46100844000ca2500aa2f00321300482201084200c2eb00326600608a00e30600606e008d0200e62200a40b008c8500024400012600ea2f0008030044720009210080e4008f4300c04800c6e4004926004e0a010a8800266800072800025200d2cf0051440062ce00c6e0004b4000c4ad008c2500648000205000a42d00f240003066000e6e000a0400b0230060a60080c20066af01070400250a00106f004a2e00af200040ea000472002308004c66000c4b001240012b2f0020a70006f2000400002a2e00106c00e8b00044c1000403000c2800a823010c1000cee2000c8400e0e000292900aa2c00a30b0000e200e48600208e008eaa00526b0028c600632e00a126000a6600530d008eae006242002c03006270000ec501068f0002a40043030043220121260052d3004c2200006e004228004083008eac000a4400e8e500e6d000010e00a2d000286400102600804000208000b2260060c9000eaa00c30e00002300470400667000050800524a0106af0040240000d3012c6200062200246100134d00f332000e8a00d32000b2ae004a0d004c2900066300e90f00a40d00042d0003440082040052840060a10022a1007290004f4300045200e80600e604000410002c4c00a6ce00e441006a520084e200c0e701002800428d00806600d088006442010a800002ce0021400000650104b00048d200e60900464c00b06100aa8a0085260092620108e3000346000b1100010600e2c2004acb00106e010a6100ccc500444b00052200620500acc601072e00086001102a00c664008662004e2400ae0600aec800253300066c007200005042000087000e71010e080126a400e86c00068600604a00ce41002948005307004b010026a600d0000060e300e2a8000c8c00642600ec6600ea640050e9000523006550006124003280006c0301030100075100e74600668300ecc700004a00c88c00c087000a6000e32e0062ec010c3000660300864000b0a200635000d089004d1200c8ee00812200e2860108aa0002220122c50042a70026ad0000c4012306006c420032830068920069440086a000a4c40028280102e4000661005320012c46002ea8006a6b0044c700d08300426a00a40c00494a00e924010428000d0000108000a5280088e30100aa000a820068d1008525004229012ea201022200f04c006c4a000c1000131200e20500ae8b0020090072110020e20008420026e800002600c689000206004692000aa200ec8e00727200e28e0002ae010708001141000d0c002d2e0007400030ae00406900e6c50024a000cc4b0112ee00260800a06b00a8ad004404000d4b004c8000e66c004a6e00cee7008867008c1300e80b0012ac0080ee00864800ec4000ac6800306000ab4400031200e6a90064a8008f4e00048e00446d000104009144010c2400c6cf008f0500a66e000884000a240082a2004f2e008af1010825005029006e120046f0000a63010625006a2a008e6a00c410010e2b004a05000eb000eec700ae4600400600686c000e06000ed200aeab004a0e006ca801224a00ee9000e40a00067200040201282000407200a4ae00255200e4c00072ca002a4d00d28c0010ec00334e012302000c83006f2c00ce6c004a2700606800e60700234400226d0064d30060f100e4400110c8004e8d0032c400c42a00014900608c00e246006082008acd00ee5200a72a00e08e00844200222a00cae2004601004284004b1200c3480080c400212b0060a4000b2c004cb2004144010cc4004e60008b2200631300e532006ae30002e80020040020870042a800500b00708c00612c000052004c6000035300d20a00c60300672a00104e0022a800682300eaea00c63200c6d30061000050e6013020006ea0012080006b5000502c00cd4f01004600288d00722200b10700a640000eab0042c70052a800928300eca500b10200504800005100e3020042cb00e48500411000c07100009301070a00292e00262d00c50c0092e001012100e228000413004664000a410042e300ef100110e7008207000cc3010c2e0032a300e48000046500606c00890600a52000812b006466006d250020ca00654000e66600d0e70086000062e000ca8000c86200a28d00a2c2006023006f52002849004b07004a23004a4a00927300004600a06f000ac800846500e0110092ee0025000010850092c000e1320086d200cc7301034600074800912100ae2600ad2a0108c500069300686800244600488500726700cab200412000129200b24e00843100612200002700e92e00e6cb002a20002c3100e12b001253004a8600220a0112e70020250086f000eae000f2300004660107280080700072420081100010880000a200c3000081270006c60021220070a700025300ad02002b13008ec600266000c0a40080cd00092a00044c00822000e640004cec0006040006b100c23000460d00e23200850e0023250012680082e200e0a0006c2801208a006a6600628c01269000a26e00404000e00800064a0022c4004a2500886000c448004846000050008c800002b3006ea8004084007228009222002c280070e400a8ee00212d008c0100ac8200025000312400a32700806200447100440000a23000606a004eab00308e002082008ca100d2ce00ec43008e0c00acb00002490048c0002273000ce800ae6c004aae004c4a0002ec000ce00050c6002a69008464006c2400024a000526004300000e4e00c00100894200709000e02800a9480080a1010ae2004e7200c06500022d00224200072200252700f20700210600664701112e0010ad00860f002c6400ee4600d22e008ca500890000466100274000f282002d2a00a2090002880046a9010e4b0066e000284800834c00012e00a444004f270030ac0021290002600064c400086401000500e8a60102c100454100aa8800b0e500a0230106a6004a2b00610f0012a4002228006290006d2a00432f00cc500104c2004c840090ee0004c7002088000d40000029000eb200c4cf00486400a12a00020a00a840000c2c00c88800e81000a06000c44000eec10106aa00302c00eb2500812000204b00064b00066000b028000c010024650022f200409100f22c00106101266b00104800428c00e74a00c10400e8a10082220044a400c02e00c0a2012cb300ae250082c000842800cf02002cf20112c001040200c4ef010f4000d06c008c8100cc6a0008ae0022aa006ec0004903006264010e2e000302006d22002241000422008c6400f00800290300c4c20026e40072cb01126200f26100670c0012aa00ae10006ecc000ca600ecd200a52500b244004640004b24008e6600e12e004ae100286200ab26006e00004e86010ee50104a000e0a900246200a94000052000b2e10084510062230026d000eb2d0108ee00b0d200cf30010905004ee10022a600ce8000aa0e00eca600230c0002e300108e00204000008400224f00108a0030470072c000a8ac004522002480006d2400ae6700224601112400a822000ec800ceee007210006531002e80002e280064a1004e4900d0060012c90044e600050a00a88d00602600240c006a8800442800248900e72200080e0044130104ce008043008266004b2a00302100c42200508200d26700ac6200804200886e01286600c625006546000221006002002a4200ac700072800008a1001072002c22002631002a8600cd2d0004e8002e8200084400c04001068e00104900829200008c00506701042a0065230006c2000a6e00a92d0084c4000b0600a2b0006292001100011001004e4600628200d30700a4880090650082eb00a9420062ad0000f20112c800e22400aa0c00462700a20700f0ce0088440086f300f28800a24500702300e6f000f024000e100000c900e0cc002a450026240004670066ee000442000aa600d2440064c0002caa002680012a8c00800a00a6aa006d4a002e0400824400ec4400444000204a00026c01214100c62800446b0006a3003003002543004a33008a0400e86d006104002b02005008000ca700026200aa04004a45002e8d0021050028b200c64600308d000e0500522e0000f3008aaa01000000042000a72c00e6cf00ac47002c800026e300ca6b00102700509201087000262a000949007102006ac60060a50082cc003226000e08004ac3000ea4010b5100266e00c8800001000044080050ce002046010e27006e20006c2a00003100046900063000613100aaa5000702002c5201065200a440004d220050c5000e84000301002e110026820066c6010aa6004c4000872700266d00001300ecb20005130080d0004c43003064006833005300002444000af30002640104c000e542002ea20012240084c2001248006211002e2a00ec8d00a2af000540000a7200424000400a0084480060300012020068500064b300090c00014b00a8b200844c00022e00ae49010100000682008f4800110b006a4000288500a0e600489000446800f10b000a23000a4200c2e000a448000a7000e2aa0010b001108700602500202c0080af010eac00c0c200a2a300b2a7000690004c4c00822800c4460125480008520026c00060cb00e24c006465000a000022c600250600c0110024480070ac00426d00d30200682801020e00806800044a00082c00e04b008a82006aaa00c2c2000a4001111300f2900110a6000e4200083000c42b000e30007084000e2c00406200e06c00444c00524c00847000234a004668002468002a4300328400a503000806002205002e450030ec010a210042aa012c4a00324400d0e80032890045200126c0000acd0006ce00886a00008300c03000a024002ae500812a00f006006626000020004ac000c09100c30600480300626a00aa2e00065000254600ee6600890a0086e100124e002124002c42008c680006a100674501002600eb30002202004c8600a7000008c100504e0070e10020440024a400050200a54b004688008acb002ce000212800ed4200600c0062400080640030cc00720800e0cb010a080008280021420062a500668b00e0ef0004900010630008ec00cc8f00204700104a00734500402e00d288002023008a6f006ca2004ea600214a002445002d0e00924700048601224100ceed00ea9200862200602e0063250007200106660026700048a3000e6d0060880086ef008240006c430000e300086100e447000c4500061000654b00a65200c63300664a00494400c545006ae4002ce100aaaa00806c00e82600462200446c006c110042b100106700aa22006ef000284600206200aec601000100230000c26b00aa4100870601091300294000a4690090a600a0ee00ecec00e06f00e1050002410092280004c30052ec00652200e0a3008090002011010e0a0108f200210d00c83000302001222300ad070004a80040600060c00006020104e400c8e0006a8000042500c0c7000882000a65000224004244004904000f0300b0b200a951008e4800a4e400523300b0aa00060100228000444f00ad300024040050e401282f0064220002d200c486006851011024004e6200e70b004929000470006a2200088a00c44c000b4f001081006665004430000506006e2e0012e400108c00480000eb410082a40062e200022c00609100a94d00c852011343002853000ece006e6600a2800126ce0126d00082a00124090068a100610a002c2d008944004126006f4d0068410052c000644d00eed300a30000b24301064200448f00072e002e44002cc200265200032e006c7000e9230070830024ec00a3020066e4010e200070f200ca0a00601100465000e06700130800008b004243008d4b006d2e00a4430086ea0080860082aa00aac1004f4a002245004621010b470002860004ee00a6a500ea32008c2600434b008ae6004061006e4100e22600aece00422600625100664401281000a226004d010000300050c300642700e0a600e1420088a200a04000ad44008672006a2100650b008288000eac0090a800ae9000270c00cf2a00664e002e660002ca004ab000c46a00200c01124400c2e400714c000412000a8a0023060027310060e6010c00004504000a27000b470000ae006c010044c200726800c40600c4cb00832d008285006928002a080060ee00c0a90002ad0092710084a800d21300654d00400800483200630500673100e4d2010d0b00446000c48c00a22a002c000064c200654401009200822900e1060086a30062440100ae000a010062e80032e0002e62000281010e3300a26300122a00acc9004ea700a42001226800290e00622100a427006e61000d2200a6c2008a2b00a14c006c8c00086800a8c80030a00104c6006671006a28011265007028004224008320002681008e410002c300e689007002000a5200e2040060830000e400ae5000e64700ac8b002450008ae0000ee200202100902a00400700a8a000840c0042a3008a6900064c0028cd006c840000a400106b00e8b201048000e6e6000c880030e20064e4002aa10064aa000cc400b0f20050ec00654a002712003202002c6200c66c00c24e00500900ec69000605002ec901268a000b3100a33201064e00280600820200232400ae6100b24200c85300c08a002e330003200002a00050a20048ae00324200c21000ac0500894600302800404b0053220000b20068ee00e02100e6a000a72e00cea4002c120004a000ab4100012800d0e400c06200228a00474e01086d00c863004033002a710006440004a4008821006c12008c6200a02200c70d00ee0900126000cce00010220062e6012ccd00820a007112002e0b002a8000ee0200eac0000a29002cce0013030050eb00ee4400c81100eae400cac500c14100c04e0088e200606400a681006ca000acea010d2400054700068f0108300048e1008a000050a500805200e52400e1080090c200ed0100852300c28800c102006840002ae60128ce000246000f53008b2800e06a000e02000eed00f04a00ae220044e4004e4700aa4600013200a82e0000090064ee00660a000a8500ac1200c2b00032210001480028a4004a400086a2008e20002802012d0000415001004900244300a02500002d010064000489010c8e006b2c00452f00880600a032005028006d0000b14400084000cc0b0024c600aa4200294c00434800e26600ec2c00024000c02800ab0700314f0048b30087210042e200b0420012a800a54400054800e0c200280f00204c00a66100686900300000e6ec0126c600a4ec00ec6700ec320029080000a3002cec0088f000ea8500a2d2008c5200a92400872200104400084a0048e4000f0600286800e24100e4e0010f4b006a85000905002881000a69002e8e00ac2100322200444800ceb200a20f004086002a8100c4a0004e43010aed00434f00282b00264501114e0043280064080006ae00ce2c00ac8700c224001084009229006302002641006470004660002548000c21008ee600060700af0f00aae100aa710006830088c000caac0103070044a200712200501200a4a00090f0002c8c00520d000b000040a8006ec500e82a00210a01020f00a4290041460080610071240124a301202000d24e00a6850086ed01106000e00100042600688200d34d006729000ea8000c2400091300705200604300c6260003000072e000046400cc2e00a06401046d00b04c00aac6006f4c0062300004ea0032680062a2005062008cf000c84100ca60006d12002ee2008847008ae200044e000468010484004aa5002e0c002ad1008ed2006e2c00c2a60086aa006490000cb100480c003068000ce6002e420044e9004e200050a100022b001244010600002620012ea700668200ad0600c8e60092e8000c2d00a6a8000a8600826e01234a004cb3004a240032a400ac2000d12100064f004eac00ceac006ea70064d00026ce012210002630010d080070c1008ca4004844002c4700451200228f00604f006c040010210064c801046e00a4a400cac300c6c5004665008e45009020002ee600c09000f3060104260028e4006e4200c4c100e3440026f1010a4c008e6100024200eee200c27000c2cb0040b2004606002ec4010b08000608002e0200892100284500c2d000a62400c93200d05200c4510064c5008e2a00090800e6450029240060a200802400c4a70020ef006622006ca900030400720400e4aa00264000c26e0028f0004aa100086600cc8400c2e601272e00a461000272000629006283010ca40104240046d200aa2800aecf010c0600ab0000e22700f06800030a0008f300a211000266004aa40124c30002a700823101028a00329000468b006eb000e2d101093000ad200010a300ad0500a8b000c6c900e2eb01094000aacc0040630000c80004eb010e820040c0002610010663002125006ac0008f2d0024200092c20046330107250004610024a60010640026000000d000848500ab460080ca0084690022af004c320082420060a9006a84000e820024700082c8008af201068c004a0400b320012142000eea002b000070260004e4012921006c6500432e00443200a40500424900632a00682000231200a0e800cd0a00ae240000a5004644012ac600a08c00d01100f2cb00e8c700b2c200a22800e0070084f20110e800a4a6000090004e2a000d2400484700e26a00ce2a002e8a01202e0048c100f2080022040022c900844f006e520046ce00008000a432003122000b20002e3200844e002a0a000261004c2e0069070032a200a46400268d00224a002a40006e6e00a82c00c74a008e62010ec2000a0200e2ee0082480048ab0002250022c2008d2e00914b00c472006a32001024000d2000662e00722a00420e00122f00cd2000e6c30106c30020a500686400a2c500c0680106ca00c002008864004a2c00e84a0012c3002ec800864700001000406400c5110106c6002b220084330004cb00906400694201024c0020c40020f0006b2400852e00908b00ee6000414100c4ce00854500092d00270500212100870b00074100602800054200c520006eac000510009092010e8d01254900606f002c26000c8000c085006e6c004d24008262002a2f0020b30062f100240800270300eee8000c6e00eb27006d2c00612a00a84700300200663200e10c012729000e290010470008c600130b0106e0006b2e01260f0008ca00f246000c410064a401126600c66100042100132200092600270100a30800490000242a007270010228000885011009000012000e890024b30068a801024a00c8a50042620072c100ccc4006ec10088840088c400a06900d04600026b00ec840000f000e0200010a500300400446100f280002b4800806d0090a7002449008cd100286000846d010d0400890700ab4c0084e000c88a00c62a00087300d2f000cd2500b2c000665200cf4500602c004a6800a6f200c0c0004e7300002101084000482000eea2004d0600085000a2c3000f2400504c00310b00626c004663002aa80080ac01330400e8c60060c8009062006c2f00a4a5008ef2004e84000f28006949000086000684004620004c07012a4100834800504500322a00825000123200aea100666200f12100b34c00472700e26500252300eccd0052c200680000a32000a4af00906c008e030002820000ed00242600c92e009290010ab2004ea5006a6c006cee00606200a0aa00a2490042500044a0006d4000cc6f0026a100ec63010ea600246a006e4000a6450006a800ce2600ccec00248a00528000a0eb000ac700ca6e0064300028a6011224010102002525002a8b006ec200092e00cb2c00f28c00a20e00ca28010e8c0040a00003230030a2004eae00912a00813000650a00a68d00830e00074400a081000845010b0a00f3080086ee0104720068c000423300ea6c0009060062a10106240022ea00c62c01244000a6a600cb2000b28200482c0007050048a1000d2f00631200c690000e4801052e00014300408e00868500202400a2480086c200e048000f020050060085050000a800e6a100b2d00032c101066c00234200c8c200ca84008cce0000820046860044a60124c2000ee000080f00ae8900262800a4b0006f01008c60000cc100c28200a66a00866b006e2f0000c1004484006ce30012c700093000310600c4a600434900703000041100c72a00442400062400ad500068b3008022000153000b460022c100624e00ce8b00304800064500e4660008c400112000132e0082d00010e6000f04007040008ccf008b0000a25000295300a90000c4a300802e0088300001030040310090b300022800310200a4d00128a40032c20010600024a8008e4f002001000125006a6200e52100062800322000110800cc42006508004eb0006113006344006ac9010ec40028a000028e00a67000a72200c80f0008630006d0004281001346010c8400c249008ec000894800e7330084c000246601212d01048900eb4e00c44400624900e6ed0100420042f100ea0900306d012a8b008c2b0028f200e48d00020200004f00b2e900a40000f302006a1200ca6200826f006802012924006a0f0048280080830042cf006105002c8b00c14800e660006c8e00669201004000610600c22000ac3000a44500526100e02e010a8a00068e004866000f2100ea66006867000a2100a26d0002e201009000846f00e326006acc01046700ef0200444a0040a10102d200a74b00ef0e0024b100822e0070c50022f000a66500ce22008e080072e600874e00532a00c948004a5000f2c80100a0000c4d012ca400040100e0490050720064a200e100004480002c820050ae00a4a1004886000ee300610e00445100c6e8000a450022290010e1010d2800624d0046a4002c8a0022a900b0c40006e20020cc00810b00e2c800e82800328b00aaa8006a8601020c002a2400488c00032200052e010f46008282004e88004c4b00c4f000462600c022003043000ccd012289012c8100046c00128201200400026e00aae90012d200e143006b0000a80e00e031000cc00028220030a401024300712a002ae200e27300252c0100c60104a8012c6800a10600264600640000244c008c4800292a0062d000026500086a0087120026a000ae64001032005027006945002a4e008670000eec008ec20006ef009302008c6a0022c7008322010742006c4d0040e9008e460066f000f2ab0032120000ac00e32000ee65010e4000ce4c0052460002e600caa500b22200b25100622d012aa000f2a900212600448d00c12900910200c12600488400486a008a4400e68c00634200c2ed00f11200e4e8000e50002e8f008a90004e4400a54e00c80201110a0040c401000400720200b00400103000a90400f08101026e00e41000800700a40a0028c200888f00e46300ac8f012322000a2f00cd2a00008e01062600e487006cc100aaa70102a200aec90004b2000ea90066cf00004900a4620046c9002a21000ac2000088000668002048010d400028eb004241004a4300e30f00083201006d00024e012aea001090004682010c80006ae000000e006681002d0300642100f06200e6a600eb2801054101066200a64d00026900e233003200004c73002244012c8800422f00e8290082e400d08b00444900330800a2c900262300302a0092240046e400ac26008a2500850800a62a00200500522c002002009004012f02000c0a00c6ae0028e00002ac00043100272a00206000a8c0002a68004ccb00206400904500b025002722006cc200b24a00a22200c2cf000a6c00f0610102320128670009270004c800304900aa0b0046f200ce0200908400f1430101220092420066200066a100882e004d4a00a68a00654100309200e44a006880006e6b00051200060600522b00a824010ac200866e00eee00004490112a50126840024e20053320048d100a92000d26000432500c0520110f2000aae004cf00051480006b300c02f00280300ea600008aa002ac5008b1000aa61003302004221008108002c400008f20006ed000c2a000e1300ca2300eea000822a008eb2000b0200ea210066250080450028e100094a0130490080e7008ab000f046002c60006acb01066800120301242200404300200001030e00105200c86000428900c74e004c250002ee0060e900011200c088000caa00a94601008c00e822006a2b00272c00e86200d06601060200624f012a4f002eb001230f00a626008eb10004ac000732000e8800661200e280004e6c00000a002a040020450004c0000aa70022e20020ae000022000e0e0106c000284c006a600004e3003293004c27004a2900c28000a002010c2700c131008f2500aa650040cb00c23200410e006aa200660700c66300c33200c2d300c82d00888200226200024c00e74b008a020062ac006a7200cb4700aa3300266f00849200ea610068860080f000ab1200010800824d00c6c00028ea008a4d008881002f1000481300ca4a008e4300268600d2a40012a300ee88008c2c00e2a700002400a80f01088700c34d00072400923100860c01000c00c429000a200084c100448a0006c000826400ec7200aae000026f00922a00f10c0022430000a60004e9012c1100674401060600cc6d00d12000604c0008e100006100ce2e00a86c00733100e45100e08800c12200c0a700d04901082e00000400c2120008c80106c20024d3003104000a4c002604004c0200052b0022ab0041080024af00b2860124080086e200c0ac00706000065300240a004c61002ca100110f008ee1008810000aaa00caa200acaa008f2e00a64a00086200530c0040ec0042a600266a00208600020900a901004c6c006a090000c200612f004c880022e700642800e46800608400708600702e008904000f2c006ce00008c5002e25002e2b002c86002ceb0088660088620002d0000ea600e47000035000286500732400060b00226400006300634101122100827100cb2a0032920090120008a300ecb000104600634d008241006f44002010002f000100e900692200804600c4c5008ea6002ca0008a100060e700c1030051470012c400a4c10026480010ee000e600090ec0082e1002c4a002b2400081200f2b3010502009023008a5000ce8600b06e008ea40112aa010ab000900800704401092100af4400ea0e00480600691000a50400c6a600884100050d00472f006c2200ace600f144000a500088e000a31101264700270e00ac61010ac000234001202400260f008ee50082060046020060b0000e6a004e130090420004400024060046a0008249010f4900cc2400202f010a8200e0a400c63100ce01006a6400026300840200aac30010cd0092d000405100424c00422a0024ab0104f200100a0062c4010826006b3200d04400c06300c07000c08d004470008a920002050022b2008050008e92010210010b0f00500000288400868600664f01024700666e00d0a300c50e0066f100af2200048c00c0b200022601044500806500062a00600f002b5200ecc300202d00840b00030c004c4100c0a0004f0a00502000304d0024ea00a82b00014c0100c500650e00a0a300203000030600088700670000a811004f290050e700522300246e0070a100b32200842e00a7300080a800a72500204f00614500203200e1120022ac00a646000c03000e8e0084a4000a8b0072d000908d00654e00a74e00860b00a4cc002ea100f206002b04008ea7008ac3010722002c27004a640022e600882600204200eea8002a0500854e008a6c0042a400c14000082400928400284000a4240002ea004c7200ae4c012f00000c6a00c0270020c200ab22008a230064480012ee00aee1002ccc01242d007248006289004b1000706900d084006250006e0c00a8630026f2008a2000206a00a74f00ac01000b4e006e6500c09200424e006032000ad000ce0000128800e8d100c22d010423012f4f00f2aa00510f00cc2f00046000474700ce920045090008c200aae200242100c14700a8c4009232001008010c60010c2201067200522500c64b00690400ea7200048000b0a0008f2a002ecf00c24600e2210006d30022480090500093240090c000e425002f2800c6cc000721002829002e49002aa40102ae00646400866300254500a71100800600050000029200ac2200c30f002e480066c90001400090c900406c00428e0064b200a68000e34200080100b10600604201022d000a2d00010d004b0a0000440021410044e00066a30046b10004ed012a81010cc200ab0e0000430008000024cb003250000820004646004920008651002eca0028cf002f2a01114a0002f0000826004cc000000d00226000ca9000800100a14200644000d28a00ce6900f2920046720052b00068ea000ae40006e700306e006eb10048cf00082100d282006ea20030c100a344012e20000c2f008c820040ed000cea01203200509300aa200060c100012a000f3200a52600ec6400441000f2850020f10084ee00046200606d00a0b2006ea30024ca00e6a4006aa00070d2004acc000e2f000e490026610008810106ea00808d00822300700a00884000c4ae0028250028700122ce0064cb00e44300f06a00c400002aeb00607000630400452e000ce100492400432a006a490042880064a0006826002a630066240084b100470700209200262b00c40500244000c10f00a2a4010810006888006b45000e7000a0720042eb002c0b00c0c50070d00022ae0024c200eeb200472800282a01024800402a000f0c006c6400e8f0004a12000ea200047300e8a001003000a28c00682200914600600000ac2401054500468e00c8c0004f0600b26300088900206c00d2e0000e6400468a00648801082901000b00a9280082c500622200202e00f2c200924b0029330082b1002aa2006c30000c900042900040a7006246010e0e00e2a5006b0c00f044002ad201203000a269000640008725000743013031002b510100e2008f08006a060000ea00cd4200302200c0eb012e840029420008d2001305008a240104900081130112e10012e200d01000af0800b24801062c00d02800243200670300a0c4000e8600215200e01300075200690a002af0000e40004a6100a2860100620063000002c0008e49002e0f00262e00ea0100c88400ec50008e0100472300b3010062ee00510c00e0c8008d3000e421012a6300c4ea0086c400c608002c850112ef00664500450e00f0630006cb0070c0008c6e00130f00608b000922002721004804004045000ca4000f1200644e00a30c007106000cab00cf1100892b00700c0042000070a000106800e44c005312004ed200a22000ca6100c00e00264e00491000a529000321006aa100088d00324a000b22006a82002a62004732002524008302000d210004c400612500eb2600028300e66200ae85004812001233004c910032e5002a6a00ca2c00a2a0000a2c01213100660e006e8b00261200ce8500c4ee000e72008ca2002f4400e84b01062e00804800042a00a0ec0002c700004200c94200a8f300d2e200a2e4002cee0064d200a2ef00a6b300012d00a80600334a00aced00a64f005348002e0800b2a4000c81008872012d220012b300406800acad00e28400cf1000c2ea0105220000ca00e67100f0b2008e5200830000012c00c0c10028f300480500af2b0092600004a200d0c5002a6600a4b20012ae00ee0f0028ad00850600c34700c72400a2cd00c14400e630000e6800ac8000ef4e0006880062c200ce5200f0ed0046c200c04400264a0090d000034c0044ad00e72000a287010ea4000e52004ef000d12700e0e80026a40045440108a600c66600660900023100e8a80008cf00a40800aaa400024700e52e008cac00d0300005320000000000000000
0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461040f5780630396ec001461040a57806306fdde0314610405578063081812fc14610400578063095ea7b3146103fb578063098144d4146103ce5780630d705df6146103f657806310e6b143146103f157806316e64048146103ec57806318160ddd146103e757806319cc02aa146103e25780631f917921146103dd57806323b872dd146103d85780632520bf04146103d357806329e38d5e146103ce5780632a55205a146103c95780632f745c59146103c45780633246887d146103bf5780633cef28d2146103ba5780633d522361146103b55780634070a0c9146103b05780634256dbe3146103ab57806342842e0e146103a65780634f02c420146103a15780634f6ccce71461039c57806356397c351461039757806358950c22146103925780635b9db8981461038d57806361d027b3146103885780636352211e1461038357806365a646681461037e57806367243482146103795780636fdca5e01461037457806370a082311461036f578063715018a61461036a57806376c71ca1146103655780638ac1bb98146103605780638da5cb5b1461035b5780638e3ddfc7146103565780638f2fc60b1461035157806391b7f5ed1461034c57806395d89b411461034757806397fd1c29146103425780639fab78411461033d578063a035b1fe14610338578063a0712d6814610333578063a22cb4651461032e578063a9fc664e14610329578063b88d4fde14610324578063bffa7fe81461031f578063c50497ae1461031a578063c87b56dd14610315578063cd3293de14610310578063d1154b6c1461030b578063d555654414610306578063dfbf306d14610301578063e8a3d485146102fc578063e985e9c5146102f7578063ed1bd76c146102f2578063f0f44260146102ed578063f2fde38b146102e8578063fa8bd61b146102e3578063fbfa77cf146102de5763fcfff16f146102d9575f80fd5b611fd0565b611f8c565b611f61565b611ed7565b611e87565b611e66565b611e02565b611d95565b611d51565b611d34565b611cbb565b611c9e565b611c7f565b611c63565b611c41565b611bb1565b611b0f565b611a41565b611879565b61185c565b61183f565b611812565b61176d565b6116e8565b611606565b6115d7565b6115af565b61158d565b611570565b611515565b6114ee565b61148c565b611232565b61117e565b61114e565b611126565b611081565b610ff6565b610fca565b610f64565b610f47565b610f12565b610e52565b610d65565b610d47565b610d0c565b610c39565b610bbf565b610b38565b61079d565b610a6b565b610a54565b6108ec565b6108cf565b6108b2565b610854565b6107ec565b6107c5565b610692565b610645565b610572565b610515565b61042a565b6001600160e01b031981160361042657565b5f80fd5b346104265760203660031901126104265761047f60043561044a81610414565b63ffffffff60e01b16632483248360e11b81149081156104fa575b8115610483575b5060405190151581529081906020820190565b0390f35b63152a902d60e11b81149150811561049d575b505f61046c565b63780e9d6360e01b8114915081156104b7575b505f610496565b6380ac58cd60e01b8114915081156104e9575b81156104d8575b505f6104b0565b6301ffc9a760e01b1490505f6104d1565b635b5e139f60e01b811491506104ca565b632b435fdb60e21b81149150610465565b5f91031261042657565b34610426575f36600319011261042657602060ff60115460a01c166040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061056f92818152019061053a565b90565b34610426575f366003190112610426576040515f5f5461059181611013565b808452906001811690811561062157506001146105c5575b61047f836105b98185038261105f565b6040519182918261055e565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610607575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916105ef565b60ff191660208086019190915291151560051b840190910191506105b990506105a9565b346104265760203660031901126104265760043561066281612ef0565b505f526004602052602060018060a01b0360405f205416604051908152f35b6001600160a01b0381160361042657565b34610426576040366003190112610426576004356106af81610681565b602435906106bc82612ef0565b3315158061078a575b8061074c575b61073957610737926107189181906001600160a01b0385811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600460205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b005b63a9fbf51f60e01b5f523360045260245ffd5b5060ff6107823361076d8460018060a01b03165f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b5416156106cb565b506001600160a01b0381163314156106c5565b34610426575f36600319011261042657601a546040516001600160a01b039091168152602090f35b34610426575f366003190112610426576040805163657711f560e11b815260016020820152f35b34610426575f36600319011261042657610804612f24565b61081360ff6018541615611ff2565b6001430180431161084f576020817fba34121df90b0e77cf350d3550142d4cd66df49d5ac6c50c9560399f8820a06192601955604051908152a1005b612031565b34610426575f36600319011261042657600f5461138803611388811161084f57600e548181106108aa575b50601354808211156108a057810390811161084f576020905b604051908152f35b505060205f610898565b90505f61087f565b34610426575f366003190112610426576020600854604051908152f35b34610426575f366003190112610426576020601454604051908152f35b346104265760203660031901126104265760043567ffffffffffffffff811161042657366023820112156104265780600401359067ffffffffffffffff82116104265736602483830101116104265760240190610947612f24565b67ffffffffffffffff8111610a235761096a81610965601b54611013565b61207b565b5f601f82116001146109a7578190610997935f9261099c575b50508160011b915f199060031b1c19161790565b601b55005b013590505f80610983565b601b5f52601f198216927f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1915f5b858110610a0b575083600195106109f2575b505050811b01601b55005b01355f19600384901b60f8161c191690555f80806109e7565b909260206001819286860135815501940191016109d5565b61104b565b606090600319011261042657600435610a4081610681565b90602435610a4d81610681565b9060443590565b3461042657610737610a6536610a28565b916120cb565b34610426575f36600319011261042657610a8a60ff6018541615611ff2565b6019548015610b0657610ab981610aa5610abe9343116121f5565b40610ab181151561222d565b611388900690565b601755565b610ad0600160ff196018541617601855565b6017546040519081527faea646e052f85d2e7b1b634b62c2d6d55d38a8901dc11a296ad7a40c2b5b5efb9080602081015b0390a1005b60405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cd9585b195960b21b6044820152606490fd5b34610426576040366003190112610426576004355f908152600b60205260409020546001600160a01b038116906024359060a01c8215610ba7575b612710916001600160601b03610b8a921690612298565b604080516001600160a01b03949094168452919004602083015290f35b50600a546001600160a01b038116925060a01c610b73565b3461042657604036600319011261042657600435610bdc81610681565b60243590610be98161258f565b821015610c1c576001600160a01b03165f9081526006602090815260408083209383529281529082902054915191825290f35b63295f44f760e21b5f5260018060a01b031660045260245260445ffd5b3461042657602036600319011261042657600435610c5681610681565b610c5e612f24565b60ff60115460a01c16610cd75760108054610100600160a81b03191660089290921b610100600160a81b031691909117905560135480610c9a57005b610b017f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9160405191829182919060206040840193600181520152565b60405162461bcd60e51b815260206004820152600d60248201526c30b93a1034b990333937bd32b760991b6044820152606490fd5b3461042657602036600319011261042657600435610d2981610681565b60018060a01b03165f526016602052602060405f2054604051908152f35b3461042657602036600319011261042657602061089860043561235a565b3461042657602036600319011261042657600435610d81612f24565b6013548110610e0d57600e548111610dd157610b0181610dc17fcda03296b648d791f2cee5a5af4b32860d8a3d01fae4126b12b408122400376793600e55565b6040519081529081906020820190565b60405162461bcd60e51b815260206004820152601460248201527331b0b81031b0b71037b7363c9033b7903237bbb760611b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f62656c6f77207768617420697320616c7265616479206d696e746564000000006044820152606490fd5b3461042657602036600319011261042657600435610e6e612f24565b610e7d60ff60105416156123d5565b600f548110610ecd57610b0181610ec4611388610ebd7ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456595601354612061565b1115612415565b610dc181600f55565b60405162461bcd60e51b815260206004820152601a60248201527f74686520726573657276652063616e206f6e6c7920676f2075700000000000006044820152606490fd5b3461042657610737610f2336610a28565b9060405192610f3360208561105f565b5f8452610f418383836120cb565b336132bf565b34610426575f366003190112610426576020601354604051908152f35b3461042657602036600319011261042657600435600854811015610fb45760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30154604051908152602090f35b63295f44f760e21b5f525f60045260245260445ffd5b34610426575f3660031901126104265760105460405160089190911c6001600160a01b03168152602090f35b34610426575f366003190112610426576020600d54604051908152f35b90600182811c92168015611041575b602083101461102d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611022565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610a2357604052565b34610426575f366003190112610426576040515f601b546110a181611013565b808452906001811690811561062157506001146110c85761047f836105b98185038261105f565b601b5f9081527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1939250905b80821061110c575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916110f4565b34610426575f366003190112610426576011546040516001600160a01b039091168152602090f35b3461042657602036600319011261042657602061116c600435612ef0565b6040516001600160a01b039091168152f35b346104265760203660031901126104265760043561119a612f24565b80156111d1576020817f5096cc7d3b7f494e6f07c51c1c2078170b67ec0c37360b56e3f668f86c1484e392600d55604051908152a1005b60405162461bcd60e51b815260206004820152600860248201526707a65726f206361760c41b6044820152606490fd5b9181601f840112156104265782359167ffffffffffffffff8311610426576020808501948460051b01011161042657565b346104265760403660031901126104265760043567ffffffffffffffff811161042657611263903690600401611201565b9060243567ffffffffffffffff811161042657611284903690600401611201565b9161128d612f24565b611295612f4b565b6112b06112ab6112a760105460ff1690565b1590565b6123d5565b6112c46112bf60185460ff1690565b61231f565b6112cf83851461247b565b6112da8415156124b9565b5f935f5b81811061142557506112f8611388610ebd87601354612061565b5f905b808210611383578561131761131282601454612061565b601455565b600f5480821061137157505061132c5f600f55565b600f546040519081527ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456590602090a161073760015f5160206138bf5f395f51905f5255565b61132c9161137e9161206e565b600f55565b90919293945f5b6113958488886124f3565b35811015611417576001906113ab601354612581565b6113b481601355565b6113d0816113cb6113c689898c6124f3565b612508565b612f83565b6113ed6113e16113c688888b6124f3565b6001600160a01b031690565b7f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa5f80a30161138a565b5094939291600101906112fb565b9461147260019161144a6114436113e16113c68b888a9b9c9a6124f3565b1515612512565b61146061145889878a6124f3565b35151561254a565b61146b8886896124f3565b3590612061565b9501939291936112de565b60243590811515820361042657565b34610426576020366003190112610426576004358015158091036104265760207f50ea4db57628851a1970ad4a3cc76cab7eb7e50b8526f7786e429df90f099d3d916114d6612f24565b60ff196015541660ff821617601555604051908152a1005b3461042657602036600319011261042657602061089860043561151081610681565b61258f565b34610426575f3660031901126104265761152d612f24565b600c80546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610426575f366003190112610426576020600e54604051908152f35b34610426575f36600319011261042657602060ff601054166040519015158152f35b34610426575f36600319011261042657600c546040516001600160a01b039091168152602090f35b34610426575f3660031901126104265761047f6115f26129e4565b60405191829160208352602083019061053a565b346104265760403660031901126104265760043561162381610681565b602435906001600160601b03821680830361042657611640612f24565b6001600160a01b03821615906116568215612512565b61271081116116d057506116bd5761169561073792611685611676611b84565b6001600160a01b039094168452565b6001600160601b03166020830152565b80516020919091015160a01b6001600160a01b0319166001600160a01b039190911617600a55565b635b6cc80560e11b5f525f60045260245ffd5b636f483d0960e01b5f5260045261271060245260445ffd5b3461042657602036600319011261042657600435611704612f24565b801561173b576020817f6bfd5e75539a9d2626425a2e2922675256b219fe546d63dad56011759b9a2f6692601255604051908152a1005b60405162461bcd60e51b815260206004820152600a6024820152697a65726f20707269636560b01b6044820152606490fd5b34610426575f366003190112610426576040515f60015461178d81611013565b808452906001811690811561062157506001146117b45761047f836105b98185038261105f565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106117f8575090915081016020016105b96105a9565b9192600181602092548385880101520191019092916117e0565b34610426575f3660031901126104265761182a612f24565b6011805460ff60a01b1916600160a01b179055005b34610426575f366003190112610426576020601954604051908152f35b34610426575f366003190112610426576020601254604051908152f35b3461042657602036600319011261042657600435611895612f4b565b6118a96118a460155460ff1690565b612b60565b6118b86112bf60185460ff1690565b6118c381151561254a565b6118ff6113886118f86118ef846013546118ea6118e08383612061565b600e541015612ba1565b612061565b600f5490612061565b1115612bd8565b335f9081526016602052604090206119279061191d90839054612061565b600d541015612c30565b335f908152601660205260409020611940828254612061565b90556012547f00000000000000000000000026ba8d5d95de3e22dffa94ebbb26e1dd39ccceaa6001600160a01b03169061197b908390612298565b90803b156104265760405163079cc67960e41b815233600482015260248101929092525f908290604490829084905af18015611a3c57611a22575b505f5b8181106119d65761073760015f5160206138bf5f395f51905f5255565b6001906119e4601354612581565b6119ed81601355565b6119f78133612f83565b337f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe5f80a3016119b9565b80611a305f611a369361105f565b8061050b565b5f6119b6565b612c6e565b3461042657604036600319011261042657600435611a5e81610681565b611a6661147d565b3315611afc576001600160a01b038216918215611ae95781611aa6611ab792335f52600560205260405f209060018060a01b03165f5260205260405f2090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b82630b61174360e31b5f5260045260245ffd5b63a9fbf51f60e01b5f525f60045260245ffd5b34610426576020366003190112610426577fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac6040600435611b4f81610681565b611b57612f24565b601a80546001600160a01b039283166001600160a01b0319821681179092558351921682526020820152a1005b60405190611b9360408361105f565b565b67ffffffffffffffff8111610a2357601f01601f191660200190565b3461042657608036600319011261042657600435611bce81610681565b60243590611bdb82610681565b6044356064359267ffffffffffffffff8411610426573660238501121561042657836004013592611c0b84611b95565b93611c19604051958661105f565b8085523660248288010111610426576020815f92602461073799018389013786010152612c79565b34610426575f36600319011261042657602060ff601854166040519015158152f35b34610426575f3660031901126104265760206040516113888152f35b346104265760203660031901126104265761047f6115f2600435612d1d565b34610426575f366003190112610426576020600f54604051908152f35b34610426575f36600319011261042657611cd3612f24565b600160ff1960105416176010555f600f557ffa66ae93a8043aceae6463b400778fbde6fc189e5277519c39862c79f85b456560206040517ff0a577bd6f3b2dd96de12db61f10f260d40b696b172a916f000d4bab009d23f15f80a15f8152a1005b34610426575f366003190112610426576020601754604051908152f35b34610426575f366003190112610426576040517f00000000000000000000000026ba8d5d95de3e22dffa94ebbb26e1dd39ccceaa6001600160a01b03168152602090f35b34610426575f3660031901126104265761047f611df46115f2611dbe611db96129e4565b6134b6565b6040519283917f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020840152603d83019061262a565b03601f19810183528261105f565b3461042657604036600319011261042657602060ff611e5a600435611e2681610681565b60243590611e3382610681565b60018060a01b03165f526005845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610426576020366003190112610426576020610898600435601254612298565b3461042657602036600319011261042657600435611ea481610681565b611eac612f24565b6001600160a01b0316611ec0811515612512565b6001600160601b0360a01b60115416176011555f80f35b3461042657602036600319011261042657600435611ef481610681565b611efc612f24565b6001600160a01b03168015611f4e57600c80546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610426576020366003190112610426576020611f7f600435612e11565b62ffffff60405191168152f35b34610426575f366003190112610426576040517f000000000000000000000000e2101e83fddc2e4bc31332aaeff46a86850649a16001600160a01b03168152602090f35b34610426575f36600319011261042657602060ff601554166040519015158152f35b15611ff957565b60405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481cda1d59999b195960821b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b906002820180921161084f57565b906001820180921161084f57565b9190820180921161084f57565b9190820391821161084f57565b601f8111612087575050565b601b5f5260205f20906020601f840160051c830193106120c1575b601f0160051c01905b8181106120b6575050565b5f81556001016120ab565b90915081906120a2565b91906001600160a01b038116156121e2576120fe6120f1835f52600260205260405f2090565b546001600160a01b031690565b601a549091906001600160a01b0316801515806121d0575b806121c8575b612160575b5061212f915082339161337b565b6001600160a01b03908116921680830361214857505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b803b156104265760405163657711f560e11b81523360048201526001600160a01b0393841660248201529282166044840152606483018490525f90839060849082905afa918215611a3c5761212f92156121215780611a305f6121c29361105f565b5f612121565b50600161211c565b506001600160a01b0383161515612116565b633250574960e11b5f525f60045260245ffd5b156121fc57565b60405162461bcd60e51b8152602060048201526009602482015268746f6f206561726c7960b81b6044820152606490fd5b1561223457565b60405162461bcd60e51b815260206004820152600c60248201526b1cd9585b08195e1c1a5c995960a21b6044820152606490fd5b600181901b91906001600160ff1b0381160361084f57565b600281901b91906001600160fe1b0381160361084f57565b8181029291811591840414171561084f57565b5f8052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76546001600160a01b038116919060a01c8215612307575b6001600160601b0316916127108381020480930361084f579190565b50600a546001600160a01b038116925060a01c6122eb565b1561232657565b60405162461bcd60e51b815260206004820152600c60248201526b1b9bdd081cda1d59999b195960a21b6044820152606490fd5b61236860ff6018541661231f565b6001811015806123c9575b15612397575f19810190811161084f57601754810180911161084f57611388900690565b60405162461bcd60e51b815260206004820152600a6024820152691b9bc81cdd58da081a5960b21b6044820152606490fd5b50611388811115612373565b156123dc57565b60405162461bcd60e51b8152602060048201526011602482015270185a5c991c9bdc081a5cc81cd9585b1959607a1b6044820152606490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600f60248201526e706173742074686520737570706c7960881b6044820152606490fd5b6040519061246260208361105f565b5f8252565b634e487b7160e01b5f52603260045260245ffd5b1561248257565b60405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b156124c057565b60405162461bcd60e51b815260206004820152600b60248201526a0cadae0e8f240c4c2e8c6d60ab1b6044820152606490fd5b91908110156125035760051b0190565b612467565b3561056f81610681565b1561251957565b60405162461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b1561255157565b60405162461bcd60e51b81526020600482015260086024820152677a65726f2071747960c01b6044820152606490fd5b5f19811461084f5760010190565b6001600160a01b031680156125ad575f52600360205260405f205490565b6322718ad960e21b5f525f60045260245ffd5b5f92918154916125cf83611013565b926001811690811561261757506001146125e857505050565b90919293505f5260205f205f905b8382106126035750500190565b6001816020925484860152019101906125f6565b60ff191683525050811515909102019150565b805191908290602001825e015f815290565b6040517f7b226e616d65223a22436f77732042726f6b657273222c00000000000000000060208201527f226465736372697074696f6e223a22352c30303020616e696d6174656420706960378201527f78656c20636f77206167656e7473206f6e20526f62696e686f6f6420436861696057820152740371610323930bbb71032b73a34b932b63c90313c9605d1b60778201527f74686520636f6e7472616374202d206e6f20696d6167652069732073746f7265608c8201527f6420616e7977686572652e204275792024434f572c206275726e2069742c207460ac8201527f616b6520796f757220436f772e204120436f772069732000000000000000000060cc8201527f7065726d616e656e743a206e6f7468696e6720696e207468697320636f6c6c6560e38201527f6374696f6e206465636179732c2065787069726573206f722063616e206265206101038201527f64657374726f7965642e2050617274206f6620746865200000000000000000006101238201527f737570706c7920697320726573657276656420746f2061697264726f7020746f61013a8201527f20686f6c64657273206f662074686520666972737420436f77732042726f6b6561015a82015270039399031b7b73a3930b1ba1d903a34329607d1b61017a8201527f726573657276656420666967757265206973207075626c6963206f6e2063686161018b82015270034b71030b9903932b9b2b93b329414971607d1b6101ab8201527f554e4f4646494349414c202d20436f77732042726f6b65727320697320616e206101bc8201527f696e646570656e64656e742070726f6a65637420616e64206973206e6f7420616101dc8201526f0333334b634b0ba32b2103bb4ba3416160851b6101fc8201527f656e646f727365642062792c206f7220636f6e6e656374656420746f20526f6261020c8201527f696e686f6f64204d61726b6574732c20496e632e206f7220616e79206f66206961022c820152711d1cc81cdd589cda591a585c9a595ccb888b60721b61024c820152701132bc3a32b93730b62fb634b735911d1160791b61025e8201529291839161296061026f8401601b6125c0565b61088b60f21b81527f2273656c6c65725f6665655f62617369735f706f696e7473223a0000000000006002820152601c0161299a9161262a565b600b60fa1b815270113332b2afb932b1b4b834b2b73a111d1160791b60018201526012016129c79161262a565b61227d60f01b815203601d1981018352600201611b93908361105f565b6129ec6122ab565b80815f9272184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015612b3a575b50806d04ee2d6d415b85acef8100000000600a921015612b1e575b662386f26fc10000811015612b09575b6305f5e100811015612af7575b612710811015612ae7575b6064811015612ad8575b1015612acd575b612a9f6021612a7460018501613094565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b908115612aaf57612a9f90612a79565b5061056f92612ac791506001600160a01b03166130d2565b9061263c565b600190910190612a63565b60029060649004930192612a5c565b6004906127109004930192612a52565b6008906305f5e1009004930192612a47565b601090662386f26fc100009004930192612a3a565b6020906d04ee2d6d415b85acef81000000009004930192612a2a565b6040935072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a612a0f565b15612b6757565b60405162461bcd60e51b81526020600482015260126024820152711d1a19481a195c99081a5cc818db1bdcd95960721b6044820152606490fd5b15612ba857565b60405162461bcd60e51b81526020600482015260086024820152671cdbdb19081bdd5d60c21b6044820152606490fd5b15612bdf57565b60405162461bcd60e51b8152602060048201526024808201527f746865207265737420697320726573657276656420666f722074686520616972604482015263064726f760e41b6064820152608490fd5b15612c3757565b60405162461bcd60e51b815260206004820152600f60248201526e1bdd995c881e5bdd5c881b1a5b5a5d608a1b6044820152606490fd5b6040513d5f823e3d90fd5b90611b93939291610f418383836120cb565b3d15612cb5573d90612c9c82611b95565b91612caa604051938461105f565b82523d5f602084013e565b606090565b6020818303126104265780519067ffffffffffffffff8211610426570181601f8201121561042657805190612cee82611b95565b92612cfc604051948561105f565b8284526020838301011161042657815f9260208093018386015e8301015290565b612d2681612ef0565b5060105460081c6001600160a01b0316906001600160a01b038216612d50575b505061056f612453565b5f9181611df4612d99612d638695612e11565b60405163906deffd60e01b60208201908152602482019590955262ffffff90911660448201525f60648201529182906084820190565b51915afa612da5612c8b565b9080612dc9575b612db65780612d46565b8060208061056f93518301019101612cba565b5080511515612dac565b8051600110156125035760210190565b8051600210156125035760220190565b8051156125035760200190565b908151811015612503570160200190565b612e1a9061235a565b60038102908082046003149015171561084f576040805190612e3c818361105f565b60038252601f190136602083013760036001602083019301837f000000000000000000000000e2101e83fddc2e4bc31332aaeff46a86850649a13c80511561250357612ee7612eab612ea5612ecc612eb7612eb1612eab612ea561056f9960ff60f81b90511690565b60f81c90565b60ff1690565b60101b90565b612ee0612eda612eab612ea5612ecc8a612dd3565b516001600160f81b03191690565b60081b90565b1794612de3565b1762ffffff1690565b5f818152600260205260409020546001600160a01b0316908115612f12575090565b637e27328960e01b5f5260045260245ffd5b600c546001600160a01b03163303612f3857565b63118cdaa760e01b5f523360045260245ffd5b60025f5160206138bf5f395f51905f525414612f745760025f5160206138bf5f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b9060405190612f9360208361105f565b5f82526001600160a01b038316156121e257612fba6120f1825f52600260205260405f2090565b601a546001600160a01b031680151580613082575b8061307a575b613011575b5050612fe75f828561337b565b6001600160a01b0316612ffe57611b9392336131ce565b6339e3563760e11b5f525f60045260245ffd5b803b156104265760405163657711f560e11b81523360048201526001600160a01b0392831660248201529185166044830152606482018390525f90829060849082905afa8015611a3c57613066575b80612fda565b80611a305f6130749361105f565b5f613060565b506001612fd5565b506001600160a01b0382161515612fcf565b9061309e82611b95565b6130ab604051918261105f565b82815280926130bc601f1991611b95565b0190602036910137565b801561084f575f190190565b806130ed6130e86130e36014612268565b612045565b613094565b9160306130f984612df3565b53607861310584612dd3565b536131186131136014612268565b612053565b600181116131405750613129575090565b63e22e27eb60e01b5f52600452601460245260445ffd5b90600f81166010811015612503576131839161317d916f181899199a1a9b1b9c1cb0b131b232b360811b901a6131768588612e00565b5360041c90565b916130c6565b613118565b90816020910312610426575161056f81610414565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261056f9291019061053a565b9092833b6131dd575b50505050565b604051630a85bd0160e11b81529260209284928392613201925f906004860161319d565b03815f6001600160a01b0387165af15f918161328e575b506132525750613226612c8b565b805191908261324b57633250574960e11b5f526001600160a01b03821660045260245ffd5b6020915001fd5b6001600160e01b03191663757a42ff60e11b0161327357505f8080806131d7565b633250574960e11b5f526001600160a01b031660045260245ffd5b6132b191925060203d6020116132b8575b6132a9818361105f565b810190613188565b905f613218565b503d61329f565b939193843b6132d0575b5050505050565b6132f16020936040519586948594630a85bd0160e11b86526004860161319d565b03815f6001600160a01b0387165af15f9181613338575b506133165750613226612c8b565b6001600160e01b03191663757a42ff60e11b0161327357505f808080806132c9565b61335291925060203d6020116132b8576132a9818361105f565b905f613308565b61336b905f52600460205260405f2090565b80546001600160a01b0319169055565b5f828152600260205260409020549091906001600160a01b031692816001600160a01b0382166134a5575b50506001600160a01b0383168015908115613479575b6001600160a01b038416918215908115613456575b6133e786610718875f52600260205260405f2090565b8484847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4156134405761341c84613658565b1561342d57505061056f91506136f7565b0361343757505090565b61056f916136b4565b81831461341c5761345184876135d5565b61341c565b6001600160a01b0386165f908152600360205260409020600181540190556133d1565b61348283613359565b6001600160a01b0385165f90815260036020526040902080545f190190556133bc565b6134af91856137e6565b5f816133a6565b908151156135cb576134da6134d56134ce8451612045565b6003900490565b612280565b90604051917f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f603f52602083018480518101602081018051915f82525b80891061358f575060209596975090600392915251068060011461357a5760021461356d575b50808452830101604052565b603d905f1901535f613561565b50603d90815f1982015360011901535f613561565b939760036004910198603f8a51818160121c165183538181600c1c16516001840153818160061c1651600284015316516003820153019361353b565b905061056f612453565b5f9161362a916135e48161258f565b91808552600760205260408520549160018060a01b031685526006602052604085209183810361362d575b5084526007602052836040812055905f5260205260405f2090565b55565b838652826020526040862054818752836020528060408820558652600760205260408620555f61360f565b600854815f5260096020528060405f205568010000000000000000811015610a2357600181016008556008548110156125035760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b906136be8261258f565b5f1981019290831161084f5760018060a01b03165f52600660205260405f20825f526020528060405f20555f52600760205260405f2055565b6008545f1981019181831161084f57805f5260096020528160405f20549310156125035760085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee282015491831015612503577ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee383018290555f918252600960205260408083209390935581529081205560085480156137d2575f198101906008548210156125035760085f8181527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee29092019190915555565b634e487b7160e01b5f52603160045260245ffd5b9091906138046001600160a01b038416801515908161384c57501590565b61380d57505050565b6001600160a01b031661382c57637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f526001600160a01b0390911660045260245260445ffd5b6001600160a01b0384168082149250821561388c575b50811561386e57501590565b5f858152600460205260409020546001600160a01b03161415919050565b9091505f52600560205260ff6138b58660405f209060018060a01b03165f5260205260405f2090565b5416905f61386256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122058b182ff454285b0fa824b3174270b3798125aa2784868dc6fee0d3c046a4e3064736f6c634300081c0033
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x2902f2…e186af | Set Approval For All | 39,358,079 | 1 hr agoTue, 18 Aug 2026 02:59:31 UTC | 0xe79a…1b41 | IN | Cows Brokers | $0.000 ETH | 0.00000052 | |
| 0xc0e9b0…b62fd6 | Set Approval For All | 38,513,691 | 1 day agoMon, 17 Aug 2026 03:28:10 UTC | 0xcc86…5de0 | IN | Cows Brokers | $0.000 ETH | 0.00000094 | |
| 0x64add7…279478 | Safe Transfer From | 38,252,852 | 1 day agoSun, 16 Aug 2026 20:11:55 UTC | 0xf3c1…2a69 | IN | Cows Brokers | $0.000 ETH | 0.00000186 | |
| 0x051830…e0cb2e | Set Approval For All | 38,016,163 | 1 day agoSun, 16 Aug 2026 13:36:07 UTC | 0x56f3…5629 | IN | Cows Brokers | $0.000 ETH | 0.00000096 | |
| 0xef8d7f…bc1817 | Set Approval For All | 37,155,248 | 2 days agoSat, 15 Aug 2026 13:36:24 UTC | 0xcaa9…8e49 | IN | Cows Brokers | $0.000 ETH | 0.00000145 | |
| 0xee1a33…c45bd3 | Safe Transfer From | 36,971,323 | 2 days agoSat, 15 Aug 2026 08:28:48 UTC | 0x0fff…c815 | IN | Cows Brokers | $0.000 ETH | 0.00000313 | |
| 0x957f22…3bf338 | mint | 36,786,953 | 3 days agoSat, 15 Aug 2026 03:20:23 UTC | 0xd481…3860 | IN | Cows Brokers | $0.000 ETH | 0.00001262 | |
| 0x258a2c…1bc687 | Set Approval For All | 36,613,147 | 3 days agoFri, 14 Aug 2026 22:30:04 UTC | 0xbdb9…652b | IN | Cows Brokers | $0.000 ETH | 0.00000188 | |
| 0xf27112…43d82c | Safe Transfer From | 36,568,084 | 3 days agoFri, 14 Aug 2026 21:15:00 UTC | 0x8a17…ab00 | IN | Cows Brokers | $0.000 ETH | 0.00000377 | |
| 0xd7a4a5…b2083f | Safe Transfer From | 36,567,956 | 3 days agoFri, 14 Aug 2026 21:14:47 UTC | 0x8a17…ab00 | IN | Cows Brokers | $0.000 ETH | 0.00000419 | |
| 0xf12b9e…bffd8e | Safe Transfer From | 36,567,838 | 3 days agoFri, 14 Aug 2026 21:14:35 UTC | 0x8a17…ab00 | IN | Cows Brokers | $0.000 ETH | 0.00000383 | |
| 0x3af477…deb645 | Set Approval For All | 36,422,673 | 3 days agoFri, 14 Aug 2026 17:12:19 UTC | 0x095c…cf2c | IN | Cows Brokers | $0.000 ETH | 0.00000099 | |
| 0x36ac89…fc45f1 | Set Approval For All | 36,351,417 | 3 days agoFri, 14 Aug 2026 15:13:14 UTC | 0x055e…d9be | IN | Cows Brokers | $0.000 ETH | 0.00000187 | |
| 0xa4cbf9…cf0f7a | Set Approval For All | 36,351,211 | 3 days agoFri, 14 Aug 2026 15:12:53 UTC | 0x090c…669d | IN | Cows Brokers | $0.000 ETH | 0.00000189 | |
| 0x793a04…0d7afc | Set Approval For All | 36,309,307 | 3 days agoFri, 14 Aug 2026 14:02:55 UTC | 0x91ab…11d2 | IN | Cows Brokers | $0.000 ETH | 0.00000188 | |
| 0xa7555b…8c26e1 | Set Approval For All | 36,215,813 | 3 days agoFri, 14 Aug 2026 11:26:46 UTC | 0x7ae3…6c0d | IN | Cows Brokers | $0.000 ETH | 0.00000193 | |
| 0x5f7629…ee70f8 | Set Approval For All | 36,167,122 | 3 days agoFri, 14 Aug 2026 10:05:23 UTC | 0xed64…2ef5 | IN | Cows Brokers | $0.000 ETH | 0.00000199 | |
| 0xdbc883…242cfd | Set Approval For All | 35,945,252 | 4 days agoFri, 14 Aug 2026 03:54:55 UTC | 0x30d1…bd09 | IN | Cows Brokers | $0.000 ETH | 0.00000198 | |
| 0x22906c…206e16 | Set Approval For All | 35,787,692 | 4 days agoThu, 13 Aug 2026 23:31:54 UTC | 0x97e7…ca39 | IN | Cows Brokers | $0.000 ETH | 0.00000204 | |
| 0xefbff7…6fd013 | Set Approval For All | 35,725,087 | 4 days agoThu, 13 Aug 2026 21:47:22 UTC | 0xb646…954c | IN | Cows Brokers | $0.000 ETH | 0.00000207 | |
| 0x1c4bd9…787289 | mint | 35,719,275 | 4 days agoThu, 13 Aug 2026 21:37:39 UTC | 0xb2c8…1d2e | IN | Cows Brokers | $0.000 ETH | 0.00000914 | |
| 0xda2393…117d31 | Set Approval For All | 35,639,678 | 4 days agoThu, 13 Aug 2026 19:24:44 UTC | 0xdf19…d127 | IN | Cows Brokers | $0.000 ETH | 0.00000109 | |
| 0x47b5a6…17c1de | mint | 35,591,041 | 4 days agoThu, 13 Aug 2026 18:03:31 UTC | 0xed64…2ef5 | IN | Cows Brokers | $0.000 ETH | 0.00000924 | |
| 0xa5d109…0f9676 | Set Approval For All | 35,554,887 | 4 days agoThu, 13 Aug 2026 17:03:13 UTC | 0x5b6c…2afb | IN | Cows Brokers | $0.000 ETH | 0.00000113 | |
| 0xbe1b2b…8c6d80 | mint | 35,438,857 | 4 days agoThu, 13 Aug 2026 13:49:20 UTC | 0xde69…c0f1 | IN | Cows Brokers | $0.000 ETH | 0.00001482 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 34,669,241 | 5 days agoWed, 12 Aug 2026 16:23:23 UTC | 0xfc1deb…5f104a | CREATE | 0x60c06040 | 0x2364…e415 | OUT | 0xe210…49a1 | 0 ETH |