More Info
Private Name Tags
Latest 25 from a total of 10,738 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Un Stake Tokens | 15214965 | 981 days ago | IN | 0 ETH | 0.01067211 | ||||
Transfer Passes ... | 15213254 | 981 days ago | IN | 0 ETH | 0.00543717 | ||||
Claim Yield For ... | 15209734 | 981 days ago | IN | 0 ETH | 0.00126935 | ||||
Claim Yield For ... | 15209112 | 981 days ago | IN | 0 ETH | 0.00342002 | ||||
Claim Yield For ... | 15209110 | 981 days ago | IN | 0 ETH | 0.00848244 | ||||
Claim Yield For ... | 15208695 | 981 days ago | IN | 0 ETH | 0.01639766 | ||||
Claim Yield For ... | 15207528 | 982 days ago | IN | 0 ETH | 0.01497841 | ||||
Un Stake Tokens | 15207345 | 982 days ago | IN | 0 ETH | 0.00108811 | ||||
Un Stake Tokens | 15207339 | 982 days ago | IN | 0 ETH | 0.0009161 | ||||
Un Stake Tokens | 15207333 | 982 days ago | IN | 0 ETH | 0.00364338 | ||||
Un Stake Tokens | 15203956 | 982 days ago | IN | 0 ETH | 0.0014149 | ||||
Claim Yield For ... | 15197653 | 983 days ago | IN | 0 ETH | 0.00423587 | ||||
Transfer Passes ... | 15197480 | 983 days ago | IN | 0 ETH | 0.0003481 | ||||
Claim Yield For ... | 15193468 | 984 days ago | IN | 0 ETH | 0.006629 | ||||
Claim Yield For ... | 15187955 | 985 days ago | IN | 0 ETH | 0.01593211 | ||||
Withdraw Passes ... | 15187190 | 985 days ago | IN | 0 ETH | 0.00108106 | ||||
Un Stake Passes | 15187187 | 985 days ago | IN | 0 ETH | 0.00203046 | ||||
Claim Yield For ... | 15184709 | 985 days ago | IN | 0 ETH | 0.00194895 | ||||
Un Stake Tokens | 15184666 | 985 days ago | IN | 0 ETH | 0.00503347 | ||||
Stake Passes | 15178488 | 986 days ago | IN | 0 ETH | 0.00130495 | ||||
Claim Yield For ... | 15174949 | 987 days ago | IN | 0 ETH | 0.01690899 | ||||
Claim Yield For ... | 15172410 | 987 days ago | IN | 0 ETH | 0.00813772 | ||||
Un Stake Tokens | 15172349 | 987 days ago | IN | 0 ETH | 0.00249472 | ||||
Un Stake Tokens | 15171707 | 987 days ago | IN | 0 ETH | 0.00219067 | ||||
Un Stake Tokens | 15169308 | 988 days ago | IN | 0 ETH | 0.00370655 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BloodShedBearsStaking
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/security/Pausable.sol";interface ICollection721 {function isOwnerOfBatch(uint256[] calldata tokenIds_, address address_) external view returns (bool);function ownerOf(uint256 tokenId) external view returns (address);function safeTransferFrom(address from, address to, uint256 tokenId) external;}interface IMintPass {function balanceOf(address account, uint256 id) external view returns (uint256);function safeTransferFrom(address from,address to,uint256 id,uint256 amount,bytes memory data) external;}interface IToken {function add(address wallet, uint256 amount) external;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.0;import "../Strings.sol";/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS,InvalidSignatureV}function _throwError(RecoverError error) private pure {if (error == RecoverError.NoError) {return; // no error: do nothing} else if (error == RecoverError.InvalidSignature) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which allows children to implement an emergency stop* mechanism that can be triggered by an authorized account.** This module is used through inheritance. It will make available the* modifiers `whenNotPaused` and `whenPaused`, which can be applied to* the functions of your contract. Note that they will not be pausable by* simply including this module, only once the modifiers are put in place.*/abstract contract Pausable is Context {/*** @dev Emitted when the pause is triggered by `account`.*/event Paused(address account);/*** @dev Emitted when the pause is lifted by `account`.*/event Unpaused(address account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;temp /= 10;
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
12345678910111213141516171819{"optimizer": {"enabled": true,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"components":[{"internalType":"bool","name":"hasLevel","type":"bool"},{"internalType":"uint256","name":"baseYieldRate","type":"uint256"}],"internalType":"struct BloodShedBearsStaking.CollectionSettings[]","name":"settings_","type":"tuple[]"},{"internalType":"address[]","name":"collections_","type":"address[]"}],"name":"addCollectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"calculateMetaPassesYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"calculateYieldForAll","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"calculateYieldSafe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"},{"internalType":"bool","name":"withdrawYield","type":"bool"}],"name":"claimPartnerTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"claimYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimYieldForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimedPartnerTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"collections","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectionsSettings","outputs":[{"internalType":"bool","name":"hasLevel","type":"bool"},{"internalType":"uint256","name":"baseYieldRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"contractsAddressesMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"},{"internalType":"address","name":"collection_","type":"address"}],"name":"getStakedTokens","outputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"stakeType","type":"uint256"},{"internalType":"uint256","name":"claimDate","type":"uint256"},{"internalType":"uint256","name":"houseTokenId","type":"uint256"}],"internalType":"struct BloodShedBearsStaking.StakedTokens[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"},{"internalType":"address","name":"collection_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"targetHouse","type":"uint256"},{"internalType":"uint256","name":"stakeType","type":"uint256"},{"internalType":"address","name":"collectionAddress","type":"address"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"},{"internalType":"uint256[]","name":"levels","type":"uint256[]"},{"internalType":"bool[]","name":"factions","type":"bool[]"},{"internalType":"bool[]","name":"elites","type":"bool[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"internalType":"struct BloodShedBearsStaking.StakeSelection[]","name":"selections_","type":"tuple[]"}],"name":"moveIntoDifferentStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"partnerCollectionYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"passesStakeDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"keys_","type":"string[]"},{"internalType":"address[]","name":"collections_","type":"address[]"}],"name":"setContractAddressesKeys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses_","type":"address[]"},{"internalType":"uint256[]","name":"yieldingAmounts_","type":"uint256[]"}],"name":"setPartnerProjectsYielding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signerAddress_","type":"address"}],"name":"setSignerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"keys_","type":"string[]"},{"internalType":"uint256[]","name":"stakeTypesIndexes_","type":"uint256[]"}],"name":"setStakeTypesKeys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"boost_","type":"uint256"}],"name":"setTreeHouseBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bool","name":"withdrawCurrentYield","type":"bool"}],"name":"stakePasses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"targetHouse","type":"uint256"},{"internalType":"uint256","name":"stakeType","type":"uint256"},{"internalType":"address","name":"collectionAddress","type":"address"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"},{"internalType":"uint256[]","name":"levels","type":"uint256[]"},{"internalType":"bool[]","name":"factions","type":"bool[]"},{"internalType":"bool[]","name":"elites","type":"bool[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"internalType":"struct BloodShedBearsStaking.StakeSelection[]","name":"selections_","type":"tuple[]"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"stakeTypesVariables","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedTokensByWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedTokensData","outputs":[{"internalType":"uint256","name":"stakeType","type":"uint256"},{"internalType":"uint256","name":"claimDate","type":"uint256"},{"internalType":"uint256","name":"houseTokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"transferPassesYieldIntoInternalWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treeHouseBoost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"treeHousesEnrolments","outputs":[{"internalType":"uint256","name":"enrolDate","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"withdraw","type":"bool"}],"name":"unStakePasses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"collectionAddress","type":"address"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"internalType":"struct BloodShedBearsStaking.UnStakeSelection[]","name":"selections_","type":"tuple[]"}],"name":"unStakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletsStakedPasses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawPassesYield","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052601e6006553480156200001657600080fd5b50620000223362000035565b6000805460ff60a01b1916905562000085565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6155af80620000956000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80637d9bcbfa1161013b578063c1479a04116100b8578063f23a6e611161007c578063f23a6e6114610614578063f2fde38b1461064d578063f370e8c514610660578063fd9d142a14610673578063fdbda0ec1461069357600080fd5b8063c1479a04146105a8578063c5273d46146105bb578063d11c109e146105db578063e4af6e64146105ee578063ed685a4c1461060157600080fd5b806398df2c35116100ff57806398df2c35146104a0578063a298557a146104f5578063a87642b214610508578063b5543d7c1461053c578063bd377f021461058057600080fd5b80637d9bcbfa146104205780637f475cb7146104285780638c891b191461043b5780638da5cb5b1461045b57806393adc4e31461048057600080fd5b806326dc6b11116101c95780635c975abb1161018d5780635c975abb146103cd5780636f4a867e146103df5780636fb5e949146103f2578063715018a61461040557806372e679611461040d57600080fd5b806326dc6b111461035257806330174bc0146103695780634d17b9d91461037c57806353067cd7146103a75780635b89af04146103ba57600080fd5b806314e8c2eb1161021057806314e8c2eb146102b5578063150b7a02146102c857806315a6e0761461031957806317c59d671461032c578063247fbfe21461033f57600080fd5b8063046dc1661461024257806308afafc0146102575780630c4f53571461025f57806311f62eb4146102a2575b600080fd5b610255610250366004614965565b6106a6565b005b6102556106fb565b61028d61026d366004614982565b600b60209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6102556102b03660046149bc565b6107ac565b6102556102c3366004614a1d565b610897565b6103006102d6366004614a9f565b7f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f95945050505050565b6040516001600160e01b03199091168152602001610299565b610255610327366004614a1d565b6110e2565b61025561033a366004614b11565b611286565b61025561034d366004614965565b611447565b61035b60065481565b604051908152602001610299565b610255610377366004614a1d565b6114f9565b61035b61038a366004614b87565b805160208183018101805160038252928201919093012091525481565b61035b6103b5366004614965565b611d24565b61035b6103c8366004614c3e565b611e96565b600054600160a01b900460ff1661028d565b61035b6103ed366004614c3e565b611eec565b610255610400366004614ce8565b61212d565b6102556121fc565b61035b61041b366004614d53565b612232565b610255612270565b610255610436366004614d94565b612655565b61035b610449366004614965565b600c6020526000908152604090205481565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610299565b61035b61048e366004614965565b600a6020526000908152604090205481565b6104da6104ae366004614982565b600560209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610299565b610255610503366004614ce8565b612901565b610468610516366004614b87565b80516020818301810180516002825292820191909301209152546001600160a01b031681565b61056961054a366004614965565b6008602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610299565b61059361058e366004614dfb565b6129a4565b60408051928352602083019190915201610299565b6102556105b6366004614e22565b6129ee565b61035b6105c9366004614965565b600d6020526000908152604090205481565b6102556105e9366004614ea2565b612ae7565b6102556105fc366004614ce8565b612b16565b61035b61060f366004614965565b612bb8565b610300610622366004614ebb565b7ff23a6e612e1ff4830e658fe43f4e3cb4a5f8170bd5d9e69fb5d7a7fa9e4fdf979695505050505050565b61025561065b366004614965565b612c56565b61028d61066e366004614d53565b612cf1565b610686610681366004614f36565b612d94565b6040516102999190614f64565b6104686106a1366004614ea2565b613060565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526004016106d090614fc8565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160a01b900460ff16156107255760405162461bcd60e51b81526004016106d090614ffd565b600260405161073390615027565b908152604051908190036020019020546001600160a01b031663f0dda65c3361075b8161308a565b6040518363ffffffff1660e01b8152600401610778929190615038565b600060405180830381600087803b15801561079257600080fd5b505af11580156107a6573d6000803e3d6000fd5b50505050565b600054600160a01b900460ff16156107d65760405162461bcd60e51b81526004016106d090614ffd565b80156107e9576107e46106fb565b6107f2565b6107f233611447565b60408051676d696e745061737360c01b815260026008820152815190819003602801812054336000818152600c60205293842054637921219560e11b84526001600160a01b039092169363f242432a936108529330939291600401615051565b600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050336000908152600c6020526040812055505050565b600054600160a01b900460ff16156108c15760405162461bcd60e51b81526004016106d090614ffd565b6000805b82811015611062576109418484838181106108e2576108e2615089565b90506020028101906108f4919061509f565b610905906060810190604001614965565b85858481811061091757610917615089565b9050602002810190610929919061509f565b6109379060608101906150bf565b60008060016130b9565b61094b908361511e565b9150600260405161095b90615136565b908152604051908190036020019020546001600160a01b03166318a5da7785858481811061098b5761098b615089565b905060200281019061099d919061509f565b6109ae906060810190604001614965565b8686858181106109c0576109c0615089565b90506020028101906109d2919061509f565b6109e09060608101906150bf565b6040518463ffffffff1660e01b81526004016109fe93929190615181565b600060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b505050506002604051610a53906d3a37b5b2b723b2b732b930ba37b960911b8152600e0190565b908152604051908190036020019020546001600160a01b0316848483818110610a7e57610a7e615089565b9050602002810190610a90919061509f565b610aa1906060810190604001614965565b6001600160a01b03161415610ab557600080fd5b6002604051610ac3906151a6565b908152604051908190036020019020546001600160a01b0316848483818110610aee57610aee615089565b9050602002810190610b00919061509f565b610b11906060810190604001614965565b6001600160a01b03161415610b2557600080fd5b60006003604051610b35906151a6565b908152602001604051809103902054858584818110610b5657610b56615089565b9050602002810190610b68919061509f565b602001351490508015610d2557610bca336002604051610b87906151a6565b908152604051908190036020019020546001600160a01b0316878786818110610bb257610bb2615089565b9050602002810190610bc4919061509f565b35612cf1565b610bd357600080fd5b6002604051610be190615136565b908152604051908190036020018120546001600160a01b03169063b121f2ac90600290610c0d906151a6565b908152604051908190036020019020546001600160a01b0316878786818110610c3857610c38615089565b9050602002810190610c4a919061509f565b6040516001600160e01b031960e085901b168152610c6d92913590600401615038565b6020604051808303816000875af1158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906151bb565b610cdd868685818110610cc557610cc5615089565b9050602002810190610cd7919061509f565b35613314565b868685818110610cef57610cef615089565b9050602002810190610d01919061509f565b610d0f9060608101906150bf565b610d1a92915061511e565b1115610d2557600080fd5b60005b858584818110610d3a57610d3a615089565b9050602002810190610d4c919061509f565b610d5a9060608101906150bf565b9050811015610f4157610e13868685818110610d7857610d78615089565b9050602002810190610d8a919061509f565b610d9b906060810190604001614965565b878786818110610dad57610dad615089565b9050602002810190610dbf919061509f565b610dcd9060608101906150bf565b84818110610ddd57610ddd615089565b90506020020135888887818110610df657610df6615089565b9050602002810190610e08919061509f565b602001356001613389565b8115610f3157610f31868685818110610e2e57610e2e615089565b9050602002810190610e40919061509f565b610e51906060810190604001614965565b878786818110610e6357610e63615089565b9050602002810190610e75919061509f565b610e839060608101906150bf565b84818110610e9357610e93615089565b90506020020135888887818110610eac57610eac615089565b9050602002810190610ebe919061509f565b3560008181526007602090815260408083206001600160a01b03909616808452958252808320815180830183524281528084018781528254600181810185559387528587209251600291820290930192835590519190920155958352600582528083209483529390529190912090910155565b610f3a816151d4565b9050610d28565b506002604051610f5090615136565b908152604051908190036020019020546001600160a01b0316634c4f1ce3868685818110610f8057610f80615089565b9050602002810190610f92919061509f565b610fa3906060810190604001614965565b33888887818110610fb657610fb6615089565b9050602002810190610fc8919061509f565b60200135898988818110610fde57610fde615089565b9050602002810190610ff0919061509f565b610ffe9060608101906150bf565b6040518663ffffffff1660e01b815260040161101e9594939291906151ef565b600060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b50505050508061105b906151d4565b90506108c5565b50600260405161107190615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906110ab9033908590600401615038565b600060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b50505050505050565b600054600160a01b900460ff161561110c5760405162461bcd60e51b81526004016106d090614ffd565b6000805b828110156110625761118984848381811061112d5761112d615089565b905060200281019061113f9190615223565b61114d906020810190614965565b85858481811061115f5761115f615089565b90506020028101906111719190615223565b61117f9060208101906150bf565b60018060006130b9565b611193908361511e565b915060026040516111a390615136565b908152604051908190036020019020546001600160a01b03166318a5da778585848181106111d3576111d3615089565b90506020028101906111e59190615223565b6111f3906020810190614965565b86868581811061120557611205615089565b90506020028101906112179190615223565b6112259060208101906150bf565b6040518463ffffffff1660e01b815260040161124393929190615181565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b505050508061127f906151d4565b9050611110565b600054600160a01b900460ff16156112b05760405162461bcd60e51b81526004016106d090614ffd565b8160026040516112ce90676d696e745061737360c01b815260080190565b90815260405190819003602001812054627eeac760e11b82526001600160a01b03169062fdd58e90611307903390600090600401615038565b602060405180830381865afa158015611324573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134891906151bb565b101561135357600080fd5b336000908152600c60205260409020541561138457801561137b576113766106fb565b611397565b61137633611447565b336000908152600d602052604090204290555b336000908152600c6020526040812080548492906113b690849061511e565b9091555050604051676d696e745061737360c01b815260029060080190815260405190819003602001812054637921219560e11b82526001600160a01b03169063f242432a9061141190339030906000908890600401615051565b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156114715760405162461bcd60e51b81526004016106d090614ffd565b600260405161147f90615027565b908152604051908190036020019020546001600160a01b031663f5d82b6b826114a73361308a565b6040518363ffffffff1660e01b81526004016114c4929190615038565b600060405180830381600087803b1580156114de57600080fd5b505af11580156114f2573d6000803e3d6000fd5b5050505050565b600054600160a01b900460ff16156115235760405162461bcd60e51b81526004016106d090614ffd565b61152d82826133f2565b60005b81811015611d1f5782828281811061154a5761154a615089565b905060200281019061155c919061509f565b61156d906060810190604001614965565b6001600160a01b0316636f9bdf6584848481811061158d5761158d615089565b905060200281019061159f919061509f565b6115ad9060608101906150bf565b336040518463ffffffff1660e01b81526004016115cc93929190615239565b602060405180830381865afa1580156115e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160d9190615265565b61161657600080fd5b6040516d3a37b5b2b723b2b732b930ba37b960911b8152600290600e01908152604051908190036020019020546001600160a01b031683838381811061165e5761165e615089565b9050602002810190611670919061509f565b611681906060810190604001614965565b6001600160a01b031614156116df57600360405161169e906151a6565b9081526020016040518091039020548383838181106116bf576116bf615089565b90506020028101906116d1919061509f565b60200135146116df57600080fd5b60026040516116ed906151a6565b908152604051908190036020019020546001600160a01b031683838381811061171857611718615089565b905060200281019061172a919061509f565b61173b906060810190604001614965565b6001600160a01b0316141561179e5760405163686f6d6560e01b815260039060040190815260200160405180910390205483838381811061177e5761177e615089565b9050602002810190611790919061509f565b602001351461179e57600080fd5b600060036040516117ae906151a6565b9081526020016040518091039020548484848181106117cf576117cf615089565b90506020028101906117e1919061509f565b60200135149050801561196e5761182b336002604051611800906151a6565b908152604051908190036020019020546001600160a01b0316868686818110610bb257610bb2615089565b61183457600080fd5b600260405161184290615136565b908152604051908190036020018120546001600160a01b03169063b121f2ac9060029061186e906151a6565b908152604051908190036020019020546001600160a01b031686868681811061189957611899615089565b90506020028101906118ab919061509f565b6040516001600160e01b031960e085901b1681526118ce92913590600401615038565b6020604051808303816000875af11580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191191906151bb565b611926858585818110610cc557610cc5615089565b85858581811061193857611938615089565b905060200281019061194a919061509f565b6119589060608101906150bf565b61196392915061511e565b111561196e57600080fd5b60005b84848481811061198357611983615089565b9050602002810190611995919061509f565b6119a39060608101906150bf565b9050811015611bfc57611a5c8585858181106119c1576119c1615089565b90506020028101906119d3919061509f565b6119e4906060810190604001614965565b8686868181106119f6576119f6615089565b9050602002810190611a08919061509f565b611a169060608101906150bf565b84818110611a2657611a26615089565b90506020020135878787818110611a3f57611a3f615089565b9050602002810190611a51919061509f565b602001356000613389565b8115611af557611af5858585818110611a7757611a77615089565b9050602002810190611a89919061509f565b611a9a906060810190604001614965565b868686818110611aac57611aac615089565b9050602002810190611abe919061509f565b611acc9060608101906150bf565b84818110611adc57611adc615089565b90506020020135878787818110610eac57610eac615089565b848484818110611b0757611b07615089565b9050602002810190611b19919061509f565b611b2a906060810190604001614965565b6001600160a01b03166342842e0e3330888888818110611b4c57611b4c615089565b9050602002810190611b5e919061509f565b611b6c9060608101906150bf565b86818110611b7c57611b7c615089565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015611bd357600080fd5b505af1158015611be7573d6000803e3d6000fd5b5050505080611bf5906151d4565b9050611971565b506002604051611c0b90615136565b908152604051908190036020019020546001600160a01b0316634c4f1ce3858585818110611c3b57611c3b615089565b9050602002810190611c4d919061509f565b611c5e906060810190604001614965565b33878787818110611c7157611c71615089565b9050602002810190611c83919061509f565b60200135888888818110611c9957611c99615089565b9050602002810190611cab919061509f565b611cb99060608101906150bf565b6040518663ffffffff1660e01b8152600401611cd99594939291906151ef565b600060405180830381600087803b158015611cf357600080fd5b505af1158015611d07573d6000803e3d6000fd5b50611d1893508492506151d4915050565b9050611530565b505050565b60008060005b600954811015611e8f576001600160a01b03841660009081526004602052604081206009805483919085908110611d6357611d63615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020541115611e7f57611e7260098281548110611da457611da4615089565b9060005260206000200160009054906101000a90046001600160a01b031660046000876001600160a01b03166001600160a01b03168152602001908152602001600020600060098581548110611dfc57611dfc615089565b60009182526020808320909101546001600160a01b03168352828101939093526040918201902080548251818502810185019093528083529192909190830182828015611e6857602002820191906000526020600020905b815481526020019060010190808311611e54575b5050505050611e96565b611e7c908361511e565b91505b611e88816151d4565b9050611d2a565b5092915050565b60008060005b8351811015611ee457611ec885858381518110611ebb57611ebb615089565b6020026020010151613925565b611ed2908361511e565b9150611edd816151d4565b9050611e9c565b509392505050565b60008054600160a01b900460ff1615611f175760405162461bcd60e51b81526004016106d090614ffd565b6001600160a01b03831660009081526008602052604081205460609060ff1615611fcf576002604051611f4990615136565b908152604051908190036020018120546335dc838f60e11b82526001600160a01b031690636bb9071e90611f839088908890600401615282565b600060405180830381865afa158015611fa0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fc891908101906152d8565b9050612015565b83516001600160401b03811115611fe857611fe8614b41565b604051908082528060200260200182016040528015612011578160200160208202803683370190505b5090505b60005b84518110156120a957612045338787848151811061203857612038615089565b6020026020010151612cf1565b61204e57600080fd5b61208d8686838151811061206457612064615089565b602002602001015184848151811061207e5761207e615089565b60200260200101516001613c3e565b612097908461511e565b92506120a2816151d4565b9050612018565b5060026040516120b890615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906120f29033908690600401615038565b600060405180830381600087803b15801561210c57600080fd5b505af1158015612120573d6000803e3d6000fd5b5093979650505050505050565b6000546001600160a01b031633146121575760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f25782828281811061217457612174615089565b90506020020160208101906121899190614965565b600286868481811061219d5761219d615089565b90506020028101906121af919061535d565b6040516121bd9291906153a3565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790556121f5816151d4565b905061215a565b6000546001600160a01b031633146122265760405162461bcd60e51b81526004016106d090614fc8565b61223060006140a0565b565b6004602052826000526040600020602052816000526040600020818154811061225a57600080fd5b9060005260206000200160009250925050505481565b600054600160a01b900460ff161561229a5760405162461bcd60e51b81526004016106d090614ffd565b6000805b60095481101561260c5733600090815260046020526040812060098054839190859081106122ce576122ce615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411156125fc576060600860006009848154811061231257612312615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561245457600260405161234d90615136565b90815260405190819003602001902054600980546001600160a01b0390921691636bb9071e91908590811061238457612384615089565b6000918252602080832090910154338352600490915260408220600980546001600160a01b03909316939192889081106123c0576123c0615089565b60009182526020808320909101546001600160a01b03168352820192909252604090810190912090516001600160e01b031960e085901b1681526124089291906004016153b3565b600060405180830381865afa158015612425573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261244d91908101906152d8565b90506124e3565b336000908152600460205260408120600980549192918590811061247a5761247a615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020546001600160401b038111156124b6576124b6614b41565b6040519080825280602002602001820160405280156124df578160200160208202803683370190505b5090505b60005b336000908152600460205260408120600980549192918690811061250c5761250c615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020548110156125f9576125dd6009848154811061254e5761254e615089565b6000918252602080832090910154338352600490915260408220600980546001600160a01b039093169391928890811061258a5761258a615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054849081106125c0576125c0615089565b906000526020600020015484848151811061207e5761207e615089565b6125e7908561511e565b93506125f2816151d4565b90506124e6565b50505b612605816151d4565b905061229e565b50600260405161261b90615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906114c49033908590600401615038565b600054600160a01b900460ff161561267f5760405162461bcd60e51b81526004016106d090614ffd565b6001600160a01b0384166000908152600a60205260409020546126a157600080fd5b60005b828110156127b157336001600160a01b038616636352211e8686858181106126ce576126ce615089565b905060200201356040518263ffffffff1660e01b81526004016126f391815260200190565b602060405180830381865afa158015612710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127349190615401565b6001600160a01b03161461274757600080fd5b6001600160a01b0385166000908152600b6020526040812060019186868581811061277457612774615089565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550806127aa906151d4565b90506126a4565b50801561285c5760026040516127c690615027565b9081526040805160209281900383019020546001600160a01b038781166000908152600a909452919092205491169063f0dda65c90339061280890869061541e565b6040518363ffffffff1660e01b8152600401612825929190615038565b600060405180830381600087803b15801561283f57600080fd5b505af1158015612853573d6000803e3d6000fd5b505050506107a6565b600260405161286a90615027565b9081526040805160209281900383019020546001600160a01b038781166000908152600a909452919092205491169063f5d82b6b9033906128ac90869061541e565b6040518363ffffffff1660e01b81526004016128c9929190615038565b600060405180830381600087803b1580156128e357600080fd5b505af11580156128f7573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461292b5760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f25782828281811061294857612948615089565b90506020020135600a600087878581811061296557612965615089565b905060200201602081019061297a9190614965565b6001600160a01b0316815260208101919091526040016000205561299d816151d4565b905061292e565b600760205282600052604060002060205281600052604060002081815481106129cc57600080fd5b6000918252602090912060029091020180546001909101549093509150839050565b6000546001600160a01b03163314612a185760405162461bcd60e51b81526004016106d090614fc8565b60005b81811015612ada57600060086000858585818110612a3b57612a3b615089565b9050602002016020810190612a509190614965565b6001600160a01b03166001600160a01b031681526020019081526020016000209050858583818110612a8457612a84615089565b905060400201602001358160010181905550858583818110612aa857612aa8615089565b612abe92602060409092020190810191506149bc565b815460ff1916901515179055612ad3816151d4565b9050612a1b565b506114f2600983836148d8565b6000546001600160a01b03163314612b115760405162461bcd60e51b81526004016106d090614fc8565b600655565b6000546001600160a01b03163314612b405760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f257828282818110612b5d57612b5d615089565b905060200201356003868684818110612b7857612b78615089565b9050602002810190612b8a919061535d565b604051612b989291906153a3565b90815260405190819003602001902055612bb1816151d4565b9050612b43565b600062015180600860006002604051612bdf90676d696e745061737360c01b815260080190565b9081526040805160209281900383019020546001600160a01b039081168452838301949094529182016000908120600101549387168152600c825282812054600d9092529190912054612c32904261543d565b612c3c919061541e565b612c46919061541e565b612c509190615454565b92915050565b6000546001600160a01b03163314612c805760405162461bcd60e51b81526004016106d090614fc8565b6001600160a01b038116612ce55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d0565b612cee816140a0565b50565b6000805b6001600160a01b03808616600090815260046020908152604080832093881683529290522054811015612d87576001600160a01b038086166000908152600460209081526040808320938816835292905220805484919083908110612d5c57612d5c615089565b90600052602060002001541415612d77576001915050612d8d565b612d80816151d4565b9050612cf5565b50600090505b9392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905290812054606091906001600160401b03811115612dd757612dd7614b41565b604051908082528060200260200182016040528015612e3357816020015b612e206040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200190600190039081612df55790505b50905060005b6001600160a01b03808616600090815260046020908152604080832093881683529290522054811015611ee4576001600160a01b038086166000908152600460209081526040808320938816835292905220805482908110612e9d57612e9d615089565b9060005260206000200154828281518110612eba57612eba615089565b602090810291909101810151919091526001600160a01b038086166000818152600584526040808220938a16825260048552808220928252919093528220805491929184908110612f0d57612f0d615089565b9060005260206000200154815260200190815260200160002060000154828281518110612f3c57612f3c615089565b6020908102919091018101518101919091526001600160a01b038086166000818152600584526040808220938a16825260048552808220928252919093528220805491929184908110612f9157612f91615089565b9060005260206000200154815260200190815260200160002060010154828281518110612fc057612fc0615089565b6020908102919091018101516040908101929092526001600160a01b03808716600081815260058452848120928a16815260048452848120918152925291812080548490811061301257613012615089565b906000526020600020015481526020019081526020016000206002015482828151811061304157613041615089565b602090810291909101015160600152613059816151d4565b9050612e39565b6009818154811061307057600080fd5b6000918252602090912001546001600160a01b0316905081565b60008061309683612bb8565b6001600160a01b039093166000908152600d602052604090204290555090919050565b6001600160a01b038616600090815260086020526040812054819060609060ff16156131755760026040516130ed90615136565b908152604051908190036020018120546335dc838f60e11b82526001600160a01b031690636bb9071e90613129908c908c908c90600401615181565b600060405180830381865afa158015613146573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261316e91908101906152d8565b90506131ba565b866001600160401b0381111561318d5761318d614b41565b6040519080825280602002602001820160405280156131b6578160200160208202803683370190505b5090505b60005b87811015613306576131e8338b8b8b858181106131dc576131dc615089565b90506020020135612cf1565b6131f157600080fd5b61322e8a8a8a8481811061320757613207615089565b9050602002013584848151811061322057613220615089565b602002602001015189613c3e565b613238908461511e565b925061325d8a8a8a8481811061325057613250615089565b90506020020135876140f0565b86156132f657896001600160a01b03166342842e0e30338c8c8681811061328657613286615089565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156132dd57600080fd5b505af11580156132f1573d6000803e3d6000fd5b505050505b6132ff816151d4565b90506131bd565b509098975050505050505050565b600080805b600954811015611e8f576000848152600760205260408120600980549192918490811061334857613348615089565b60009182526020808320909101546001600160a01b03168352820192909252604001902054613377908361511e565b9150613382816151d4565b9050613319565b806133c2573360009081526004602090815260408083206001600160a01b03881684528252822080546001810182559083529120018390555b506001600160a01b0390921660009081526005602090815260408083209383529290522090815542600190910155565b60005b81811015611d1f5782828281811061340f5761340f615089565b9050602002810190613421919061509f565b61342f9060e08101906150bf565b1515905061343c57613913565b600160005b84848481811061345357613453615089565b9050602002810190613465919061509f565b6134739060608101906150bf565b905081101561378757600085858581811061349057613490615089565b90506020028101906134a2919061509f565b6134b3906060810190604001614965565b8686868181106134c5576134c5615089565b90506020028101906134d7919061509f565b6134e59060608101906150bf565b848181106134f5576134f5615089565b9050602002013587878781811061350e5761350e615089565b9050602002810190613520919061509f565b61352e9060808101906150bf565b8581811061353e5761353e615089565b9050602002013588888881811061355757613557615089565b9050602002810190613569919061509f565b6135779060c08101906150bf565b8681811061358757613587615089565b905060200201602081019061359c91906149bc565b8989898181106135ae576135ae615089565b90506020028101906135c0919061509f565b6135ce9060a08101906150bf565b878181106135de576135de615089565b90506020020160208101906135f391906149bc565b60405160609590951b6bffffffffffffffffffffffff1916602086015260348501939093526054840191909152151560f890811b6074840152901515901b607582015260760160405160208183030381529060405280519060200120905060006136aa826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000613740828989898181106136c4576136c4615089565b90506020028101906136d6919061509f565b6136e49060e08101906150bf565b878181106136f4576136f4615089565b9050602002810190613706919061535d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061423492505050565b905084801561376f57506001600160a01b0381161580159061376f57506001546001600160a01b038281169116145b9450505050808061377f906151d4565b915050613441565b508061379257600080fd5b60026040516137a090615136565b908152604051908190036020019020546001600160a01b0316632ffe7dc38585858181106137d0576137d0615089565b90506020028101906137e2919061509f565b6137f3906060810190604001614965565b86868681811061380557613805615089565b9050602002810190613817919061509f565b6138259060608101906150bf565b88888881811061383757613837615089565b9050602002810190613849919061509f565b6138579060808101906150bf565b8a8a8a81811061386957613869615089565b905060200281019061387b919061509f565b6138899060a08101906150bf565b8c8c8c81811061389b5761389b615089565b90506020028101906138ad919061509f565b6138bb9060c08101906150bf565b6040518a63ffffffff1660e01b81526004016138df999897969594939291906154b8565b600060405180830381600087803b1580156138f957600080fd5b505af115801561390d573d6000803e3d6000fd5b50505050505b8061391d816151d4565b9150506133f5565b6001600160a01b03821660009081526005602090815260408083208484529091528120600101548190620151809061395d904261543d565b6001600160a01b038616600090815260086020526040902060010154613983919061541e565b61398d9190615454565b905060036040516139ac9067747261696e696e6760c01b815260080190565b9081526040805160209281900383019020546001600160a01b03871660009081526005845282812087825290935291205414156139f1576139ee600282615454565b90505b6001600160a01b03841660009081526008602052604090205460ff1615613abe5760646002604051613a2290615136565b90815260405190819003602001812054635498e3b760e01b82526001600160a01b031690635498e3b790613a5c9088908890600401615038565b602060405180830381865afa158015613a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9d91906151bb565b613aa7908361541e565b613ab19190615454565b613abb908261511e565b90505b6003604051613acc906151a6565b9081526040805160209281900383019020546001600160a01b0387166000908152600584528281208782529093529120541415612d8d576001600160a01b038416600081815260056020908152604080832087845282528083206002015483526007825280832093835292905290812090805b8254811015613b8b5785838281548110613b5b57613b5b615089565b9060005260206000209060020201600101541415613b7b57809150613b8b565b613b84816151d4565b9050613b3f565b8254811415613bac5760405162461bcd60e51b81526004016106d09061552a565b6283d600600654600860008a6001600160a01b03166001600160a01b0316815260200190815260200160002060010154858581548110613bee57613bee615089565b90600052602060002090600202016000015442613c0b919061543d565b613c15919061541e565b613c1f919061541e565b613c299190615454565b613c33908561511e565b979650505050505050565b6001600160a01b038416600090815260056020908152604080832086845290915281206001015481906201518090613c76904261543d565b6001600160a01b038816600090815260086020526040902060010154613c9c919061541e565b613ca69190615454565b90506003604051613cc59067747261696e696e6760c01b815260080190565b9081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613d0a57613d07600282615454565b90505b60405165626174746c6560d01b81526003906006019081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613d6e57613d61600282615454565b613d6b908261511e565b90505b6001600160a01b03861660009081526008602052604090205460ff1615613db2576064613d9b858361541e565b613da59190615454565b613daf908261511e565b90505b6003604051613dc0906151a6565b9081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613f58576001600160a01b038616600081815260056020908152604080832089845282528083206002015483526007825280832093835292905290812090805b8254811015613e7f5787838281548110613e4f57613e4f615089565b9060005260206000209060020201600101541415613e6f57809150613e7f565b613e78816151d4565b9050613e33565b8254811415613ea05760405162461bcd60e51b81526004016106d09061552a565b6283d600600654600860008c6001600160a01b03166001600160a01b0316815260200190815260200160002060010154858581548110613ee257613ee2615089565b90600052602060002090600202016000015442613eff919061543d565b613f09919061541e565b613f13919061541e565b613f1d9190615454565b613f27908561511e565b93508515613f545742838381548110613f4257613f42615089565b60009182526020909120600290910201555b5050505b60405167747261696e696e6760c01b81526003906008019081526040805160209281900383019020546001600160a01b03891660009081526005845282812089825290935291205414614066576002604051613fb390615136565b9081526040805160209281900383018120546001600160a01b038a81166000818152600587528581208c82529096529390942054636474283760e11b835260048301939093526024820189905260448201859052606482019290925291169063c8e8506e906084016020604051808303816000875af115801561403a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405e9190615265565b614066575060005b8215614097576001600160a01b03861660009081526005602090815260408083208884529091529020426001909101555b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60026040516140fe906151a6565b908152604051908190036020019020546001600160a01b03848116911614156141345761412a82613314565b1561413457600080fd5b806141af573360009081526004602090815260408083206001600160a01b038716845290915290206141669083614250565b3360009081526004602090815260408083206001600160a01b038716845290915290208054806141985761419861554d565b600190038181906000526020600020016000905590555b60036040516141bd906151a6565b9081526040805160209281900383019020546001600160a01b03861660009081526005845282812086825290935291205414156141fe576141fe838361436f565b506001600160a01b0390911660009081526005602090815260408083209383529290529081208181556001810182905560020155565b60008060006142438585614418565b91509150611ee481614488565b6000805b8354811015614299578284828154811061427057614270615089565b9060005260206000200154141561428957809150614299565b614292816151d4565b9050614254565b83548114156142ba5760405162461bcd60e51b81526004016106d09061552a565b83546142c89060019061543d565b82146107a65760008483815481106142e2576142e2615089565b906000526020600020015490508460018680549050614301919061543d565b8154811061431157614311615089565b906000526020600020015485848154811061432e5761432e615089565b60009182526020909120015584548190869061434c9060019061543d565b8154811061435c5761435c615089565b6000918252602090912001555050505050565b6001600160a01b0382166000818152600560209081526040808320858452825280832060020154835260078252808320938352929052206143b09082614643565b6001600160a01b0382166000818152600560209081526040808320858452825280832060020154835260078252808320938352929052208054806143f6576143f661554d565b6000828152602081206002600019909301928302018181556001015590555050565b60008082516041141561444f5760208301516040840151606085015160001a614443878285856147b2565b94509450505050614481565b825160401415614479576020830151604084015161446e86838361489f565b935093505050614481565b506000905060025b9250929050565b600081600481111561449c5761449c615563565b14156144a55750565b60018160048111156144b9576144b9615563565b14156145075760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106d0565b600281600481111561451b5761451b615563565b14156145695760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106d0565b600381600481111561457d5761457d615563565b14156145d65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106d0565b60048160048111156145ea576145ea615563565b1415612cee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106d0565b6000805b8354811015614693578284828154811061466357614663615089565b906000526020600020906002020160010154141561468357809150614693565b61468c816151d4565b9050614647565b83548114156146b45760405162461bcd60e51b81526004016106d09061552a565b83546146c29060019061543d565b82146107a65760008483815481106146dc576146dc615089565b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050846001868054905061471d919061543d565b8154811061472d5761472d615089565b906000526020600020906002020185848154811061474d5761474d615089565b6000918252602090912082546002909202019081556001918201549082015585548291879161477c919061543d565b8154811061478c5761478c615089565b600091825260209182902083516002909202019081559101516001909101555050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156147e95750600090506003614896565b8460ff16601b1415801561480157508460ff16601c14155b156148125750600090506004614896565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614866573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661488f57600060019250925050614896565b9150600090505b94509492505050565b6000806001600160ff1b038316816148bc60ff86901c601b61511e565b90506148ca878288856147b2565b935093505050935093915050565b82805482825590600052602060002090810192821561492b579160200282015b8281111561492b5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906148f8565b5061493792915061493b565b5090565b5b80821115614937576000815560010161493c565b6001600160a01b0381168114612cee57600080fd5b60006020828403121561497757600080fd5b8135612d8d81614950565b6000806040838503121561499557600080fd5b82356149a081614950565b946020939093013593505050565b8015158114612cee57600080fd5b6000602082840312156149ce57600080fd5b8135612d8d816149ae565b60008083601f8401126149eb57600080fd5b5081356001600160401b03811115614a0257600080fd5b6020830191508360208260051b850101111561448157600080fd5b60008060208385031215614a3057600080fd5b82356001600160401b03811115614a4657600080fd5b614a52858286016149d9565b90969095509350505050565b60008083601f840112614a7057600080fd5b5081356001600160401b03811115614a8757600080fd5b60208301915083602082850101111561448157600080fd5b600080600080600060808688031215614ab757600080fd5b8535614ac281614950565b94506020860135614ad281614950565b93506040860135925060608601356001600160401b03811115614af457600080fd5b614b0088828901614a5e565b969995985093965092949392505050565b60008060408385031215614b2457600080fd5b823591506020830135614b36816149ae565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b7f57614b7f614b41565b604052919050565b60006020808385031215614b9a57600080fd5b82356001600160401b0380821115614bb157600080fd5b818501915085601f830112614bc557600080fd5b813581811115614bd757614bd7614b41565b614be9601f8201601f19168501614b57565b91508082528684828501011115614bff57600080fd5b8084840185840137600090820190930192909252509392505050565b60006001600160401b03821115614c3457614c34614b41565b5060051b60200190565b60008060408385031215614c5157600080fd5b8235614c5c81614950565b91506020838101356001600160401b03811115614c7857600080fd5b8401601f81018613614c8957600080fd5b8035614c9c614c9782614c1b565b614b57565b81815260059190911b82018301908381019088831115614cbb57600080fd5b928401925b82841015614cd957833582529284019290840190614cc0565b80955050505050509250929050565b60008060008060408587031215614cfe57600080fd5b84356001600160401b0380821115614d1557600080fd5b614d21888389016149d9565b90965094506020870135915080821115614d3a57600080fd5b50614d47878288016149d9565b95989497509550505050565b600080600060608486031215614d6857600080fd5b8335614d7381614950565b92506020840135614d8381614950565b929592945050506040919091013590565b60008060008060608587031215614daa57600080fd5b8435614db581614950565b935060208501356001600160401b03811115614dd057600080fd5b614ddc878288016149d9565b9094509250506040850135614df0816149ae565b939692955090935050565b600080600060608486031215614e1057600080fd5b833592506020840135614d8381614950565b60008060008060408587031215614e3857600080fd5b84356001600160401b0380821115614e4f57600080fd5b818701915087601f830112614e6357600080fd5b813581811115614e7257600080fd5b8860208260061b8501011115614e8757600080fd5b602092830196509450908601359080821115614d3a57600080fd5b600060208284031215614eb457600080fd5b5035919050565b60008060008060008060a08789031215614ed457600080fd5b8635614edf81614950565b95506020870135614eef81614950565b9450604087013593506060870135925060808701356001600160401b03811115614f1857600080fd5b614f2489828a01614a5e565b979a9699509497509295939492505050565b60008060408385031215614f4957600080fd5b8235614f5481614950565b91506020830135614b3681614950565b602080825282518282018190526000919060409081850190868401855b82811015614fbb57815180518552868101518786015285810151868601526060908101519085015260809093019290850190600101614f81565b5091979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b643a37b5b2b760d91b815260050190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052603260045260246000fd5b6000823560fe198336030181126150b557600080fd5b9190910192915050565b6000808335601e198436030181126150d657600080fd5b8301803591506001600160401b038211156150f057600080fd5b6020019150600581901b360382131561448157600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561513157615131615108565b500190565b6867616d65537461747360b81b815260090190565b81835260006001600160fb1b0383111561516457600080fd5b8260051b8083602087013760009401602001938452509192915050565b6001600160a01b0384168152604060208201819052600090614097908301848661514b565b6874726565486f75736560b81b815260090190565b6000602082840312156151cd57600080fd5b5051919050565b60006000198214156151e8576151e8615108565b5060010190565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090613c33908301848661514b565b60008235603e198336030181126150b557600080fd5b60408152600061524d60408301858761514b565b905060018060a01b0383166020830152949350505050565b60006020828403121561527757600080fd5b8151612d8d816149ae565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b818110156152cb578451835293830193918301916001016152af565b5090979650505050505050565b600060208083850312156152eb57600080fd5b82516001600160401b0381111561530157600080fd5b8301601f8101851361531257600080fd5b8051615320614c9782614c1b565b81815260059190911b8201830190838101908783111561533f57600080fd5b928401925b82841015613c3357835182529284019290840190615344565b6000808335601e1984360301811261537457600080fd5b8301803591506001600160401b0382111561538e57600080fd5b60200191503681900382131561448157600080fd5b8183823760009101908152919050565b6001600160a01b0383168152604060208083018290528354918301829052600084815281812090929091906060850190845b818110156152cb578454835260019485019492840192016153e5565b60006020828403121561541357600080fd5b8151612d8d81614950565b600081600019048311821515161561543857615438615108565b500290565b60008282101561544f5761544f615108565b500390565b60008261547157634e487b7160e01b600052601260045260246000fd5b500490565b8183526000602080850194508260005b858110156154ad578135615499816149ae565b151587529582019590820190600101615486565b509495945050505050565b6001600160a01b038a16815260a0602082018190526000906154dd9083018a8c61514b565b82810360408401526154f081898b61514b565b90508281036060840152615505818789615476565b9050828103608084015261551a818587615476565b9c9b505050505050505050505050565b6020808252600990820152681393d50813d5d3915160ba1b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220f16e2a2d6e3df9817d43f7bc7d532ca08db3de3e8e8186650249f20ee803b52164736f6c634300080a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80637d9bcbfa1161013b578063c1479a04116100b8578063f23a6e611161007c578063f23a6e6114610614578063f2fde38b1461064d578063f370e8c514610660578063fd9d142a14610673578063fdbda0ec1461069357600080fd5b8063c1479a04146105a8578063c5273d46146105bb578063d11c109e146105db578063e4af6e64146105ee578063ed685a4c1461060157600080fd5b806398df2c35116100ff57806398df2c35146104a0578063a298557a146104f5578063a87642b214610508578063b5543d7c1461053c578063bd377f021461058057600080fd5b80637d9bcbfa146104205780637f475cb7146104285780638c891b191461043b5780638da5cb5b1461045b57806393adc4e31461048057600080fd5b806326dc6b11116101c95780635c975abb1161018d5780635c975abb146103cd5780636f4a867e146103df5780636fb5e949146103f2578063715018a61461040557806372e679611461040d57600080fd5b806326dc6b111461035257806330174bc0146103695780634d17b9d91461037c57806353067cd7146103a75780635b89af04146103ba57600080fd5b806314e8c2eb1161021057806314e8c2eb146102b5578063150b7a02146102c857806315a6e0761461031957806317c59d671461032c578063247fbfe21461033f57600080fd5b8063046dc1661461024257806308afafc0146102575780630c4f53571461025f57806311f62eb4146102a2575b600080fd5b610255610250366004614965565b6106a6565b005b6102556106fb565b61028d61026d366004614982565b600b60209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6102556102b03660046149bc565b6107ac565b6102556102c3366004614a1d565b610897565b6103006102d6366004614a9f565b7f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f95945050505050565b6040516001600160e01b03199091168152602001610299565b610255610327366004614a1d565b6110e2565b61025561033a366004614b11565b611286565b61025561034d366004614965565b611447565b61035b60065481565b604051908152602001610299565b610255610377366004614a1d565b6114f9565b61035b61038a366004614b87565b805160208183018101805160038252928201919093012091525481565b61035b6103b5366004614965565b611d24565b61035b6103c8366004614c3e565b611e96565b600054600160a01b900460ff1661028d565b61035b6103ed366004614c3e565b611eec565b610255610400366004614ce8565b61212d565b6102556121fc565b61035b61041b366004614d53565b612232565b610255612270565b610255610436366004614d94565b612655565b61035b610449366004614965565b600c6020526000908152604090205481565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610299565b61035b61048e366004614965565b600a6020526000908152604090205481565b6104da6104ae366004614982565b600560209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610299565b610255610503366004614ce8565b612901565b610468610516366004614b87565b80516020818301810180516002825292820191909301209152546001600160a01b031681565b61056961054a366004614965565b6008602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610299565b61059361058e366004614dfb565b6129a4565b60408051928352602083019190915201610299565b6102556105b6366004614e22565b6129ee565b61035b6105c9366004614965565b600d6020526000908152604090205481565b6102556105e9366004614ea2565b612ae7565b6102556105fc366004614ce8565b612b16565b61035b61060f366004614965565b612bb8565b610300610622366004614ebb565b7ff23a6e612e1ff4830e658fe43f4e3cb4a5f8170bd5d9e69fb5d7a7fa9e4fdf979695505050505050565b61025561065b366004614965565b612c56565b61028d61066e366004614d53565b612cf1565b610686610681366004614f36565b612d94565b6040516102999190614f64565b6104686106a1366004614ea2565b613060565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526004016106d090614fc8565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160a01b900460ff16156107255760405162461bcd60e51b81526004016106d090614ffd565b600260405161073390615027565b908152604051908190036020019020546001600160a01b031663f0dda65c3361075b8161308a565b6040518363ffffffff1660e01b8152600401610778929190615038565b600060405180830381600087803b15801561079257600080fd5b505af11580156107a6573d6000803e3d6000fd5b50505050565b600054600160a01b900460ff16156107d65760405162461bcd60e51b81526004016106d090614ffd565b80156107e9576107e46106fb565b6107f2565b6107f233611447565b60408051676d696e745061737360c01b815260026008820152815190819003602801812054336000818152600c60205293842054637921219560e11b84526001600160a01b039092169363f242432a936108529330939291600401615051565b600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050336000908152600c6020526040812055505050565b600054600160a01b900460ff16156108c15760405162461bcd60e51b81526004016106d090614ffd565b6000805b82811015611062576109418484838181106108e2576108e2615089565b90506020028101906108f4919061509f565b610905906060810190604001614965565b85858481811061091757610917615089565b9050602002810190610929919061509f565b6109379060608101906150bf565b60008060016130b9565b61094b908361511e565b9150600260405161095b90615136565b908152604051908190036020019020546001600160a01b03166318a5da7785858481811061098b5761098b615089565b905060200281019061099d919061509f565b6109ae906060810190604001614965565b8686858181106109c0576109c0615089565b90506020028101906109d2919061509f565b6109e09060608101906150bf565b6040518463ffffffff1660e01b81526004016109fe93929190615181565b600060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b505050506002604051610a53906d3a37b5b2b723b2b732b930ba37b960911b8152600e0190565b908152604051908190036020019020546001600160a01b0316848483818110610a7e57610a7e615089565b9050602002810190610a90919061509f565b610aa1906060810190604001614965565b6001600160a01b03161415610ab557600080fd5b6002604051610ac3906151a6565b908152604051908190036020019020546001600160a01b0316848483818110610aee57610aee615089565b9050602002810190610b00919061509f565b610b11906060810190604001614965565b6001600160a01b03161415610b2557600080fd5b60006003604051610b35906151a6565b908152602001604051809103902054858584818110610b5657610b56615089565b9050602002810190610b68919061509f565b602001351490508015610d2557610bca336002604051610b87906151a6565b908152604051908190036020019020546001600160a01b0316878786818110610bb257610bb2615089565b9050602002810190610bc4919061509f565b35612cf1565b610bd357600080fd5b6002604051610be190615136565b908152604051908190036020018120546001600160a01b03169063b121f2ac90600290610c0d906151a6565b908152604051908190036020019020546001600160a01b0316878786818110610c3857610c38615089565b9050602002810190610c4a919061509f565b6040516001600160e01b031960e085901b168152610c6d92913590600401615038565b6020604051808303816000875af1158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906151bb565b610cdd868685818110610cc557610cc5615089565b9050602002810190610cd7919061509f565b35613314565b868685818110610cef57610cef615089565b9050602002810190610d01919061509f565b610d0f9060608101906150bf565b610d1a92915061511e565b1115610d2557600080fd5b60005b858584818110610d3a57610d3a615089565b9050602002810190610d4c919061509f565b610d5a9060608101906150bf565b9050811015610f4157610e13868685818110610d7857610d78615089565b9050602002810190610d8a919061509f565b610d9b906060810190604001614965565b878786818110610dad57610dad615089565b9050602002810190610dbf919061509f565b610dcd9060608101906150bf565b84818110610ddd57610ddd615089565b90506020020135888887818110610df657610df6615089565b9050602002810190610e08919061509f565b602001356001613389565b8115610f3157610f31868685818110610e2e57610e2e615089565b9050602002810190610e40919061509f565b610e51906060810190604001614965565b878786818110610e6357610e63615089565b9050602002810190610e75919061509f565b610e839060608101906150bf565b84818110610e9357610e93615089565b90506020020135888887818110610eac57610eac615089565b9050602002810190610ebe919061509f565b3560008181526007602090815260408083206001600160a01b03909616808452958252808320815180830183524281528084018781528254600181810185559387528587209251600291820290930192835590519190920155958352600582528083209483529390529190912090910155565b610f3a816151d4565b9050610d28565b506002604051610f5090615136565b908152604051908190036020019020546001600160a01b0316634c4f1ce3868685818110610f8057610f80615089565b9050602002810190610f92919061509f565b610fa3906060810190604001614965565b33888887818110610fb657610fb6615089565b9050602002810190610fc8919061509f565b60200135898988818110610fde57610fde615089565b9050602002810190610ff0919061509f565b610ffe9060608101906150bf565b6040518663ffffffff1660e01b815260040161101e9594939291906151ef565b600060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b50505050508061105b906151d4565b90506108c5565b50600260405161107190615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906110ab9033908590600401615038565b600060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b50505050505050565b600054600160a01b900460ff161561110c5760405162461bcd60e51b81526004016106d090614ffd565b6000805b828110156110625761118984848381811061112d5761112d615089565b905060200281019061113f9190615223565b61114d906020810190614965565b85858481811061115f5761115f615089565b90506020028101906111719190615223565b61117f9060208101906150bf565b60018060006130b9565b611193908361511e565b915060026040516111a390615136565b908152604051908190036020019020546001600160a01b03166318a5da778585848181106111d3576111d3615089565b90506020028101906111e59190615223565b6111f3906020810190614965565b86868581811061120557611205615089565b90506020028101906112179190615223565b6112259060208101906150bf565b6040518463ffffffff1660e01b815260040161124393929190615181565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b505050508061127f906151d4565b9050611110565b600054600160a01b900460ff16156112b05760405162461bcd60e51b81526004016106d090614ffd565b8160026040516112ce90676d696e745061737360c01b815260080190565b90815260405190819003602001812054627eeac760e11b82526001600160a01b03169062fdd58e90611307903390600090600401615038565b602060405180830381865afa158015611324573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134891906151bb565b101561135357600080fd5b336000908152600c60205260409020541561138457801561137b576113766106fb565b611397565b61137633611447565b336000908152600d602052604090204290555b336000908152600c6020526040812080548492906113b690849061511e565b9091555050604051676d696e745061737360c01b815260029060080190815260405190819003602001812054637921219560e11b82526001600160a01b03169063f242432a9061141190339030906000908890600401615051565b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156114715760405162461bcd60e51b81526004016106d090614ffd565b600260405161147f90615027565b908152604051908190036020019020546001600160a01b031663f5d82b6b826114a73361308a565b6040518363ffffffff1660e01b81526004016114c4929190615038565b600060405180830381600087803b1580156114de57600080fd5b505af11580156114f2573d6000803e3d6000fd5b5050505050565b600054600160a01b900460ff16156115235760405162461bcd60e51b81526004016106d090614ffd565b61152d82826133f2565b60005b81811015611d1f5782828281811061154a5761154a615089565b905060200281019061155c919061509f565b61156d906060810190604001614965565b6001600160a01b0316636f9bdf6584848481811061158d5761158d615089565b905060200281019061159f919061509f565b6115ad9060608101906150bf565b336040518463ffffffff1660e01b81526004016115cc93929190615239565b602060405180830381865afa1580156115e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160d9190615265565b61161657600080fd5b6040516d3a37b5b2b723b2b732b930ba37b960911b8152600290600e01908152604051908190036020019020546001600160a01b031683838381811061165e5761165e615089565b9050602002810190611670919061509f565b611681906060810190604001614965565b6001600160a01b031614156116df57600360405161169e906151a6565b9081526020016040518091039020548383838181106116bf576116bf615089565b90506020028101906116d1919061509f565b60200135146116df57600080fd5b60026040516116ed906151a6565b908152604051908190036020019020546001600160a01b031683838381811061171857611718615089565b905060200281019061172a919061509f565b61173b906060810190604001614965565b6001600160a01b0316141561179e5760405163686f6d6560e01b815260039060040190815260200160405180910390205483838381811061177e5761177e615089565b9050602002810190611790919061509f565b602001351461179e57600080fd5b600060036040516117ae906151a6565b9081526020016040518091039020548484848181106117cf576117cf615089565b90506020028101906117e1919061509f565b60200135149050801561196e5761182b336002604051611800906151a6565b908152604051908190036020019020546001600160a01b0316868686818110610bb257610bb2615089565b61183457600080fd5b600260405161184290615136565b908152604051908190036020018120546001600160a01b03169063b121f2ac9060029061186e906151a6565b908152604051908190036020019020546001600160a01b031686868681811061189957611899615089565b90506020028101906118ab919061509f565b6040516001600160e01b031960e085901b1681526118ce92913590600401615038565b6020604051808303816000875af11580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191191906151bb565b611926858585818110610cc557610cc5615089565b85858581811061193857611938615089565b905060200281019061194a919061509f565b6119589060608101906150bf565b61196392915061511e565b111561196e57600080fd5b60005b84848481811061198357611983615089565b9050602002810190611995919061509f565b6119a39060608101906150bf565b9050811015611bfc57611a5c8585858181106119c1576119c1615089565b90506020028101906119d3919061509f565b6119e4906060810190604001614965565b8686868181106119f6576119f6615089565b9050602002810190611a08919061509f565b611a169060608101906150bf565b84818110611a2657611a26615089565b90506020020135878787818110611a3f57611a3f615089565b9050602002810190611a51919061509f565b602001356000613389565b8115611af557611af5858585818110611a7757611a77615089565b9050602002810190611a89919061509f565b611a9a906060810190604001614965565b868686818110611aac57611aac615089565b9050602002810190611abe919061509f565b611acc9060608101906150bf565b84818110611adc57611adc615089565b90506020020135878787818110610eac57610eac615089565b848484818110611b0757611b07615089565b9050602002810190611b19919061509f565b611b2a906060810190604001614965565b6001600160a01b03166342842e0e3330888888818110611b4c57611b4c615089565b9050602002810190611b5e919061509f565b611b6c9060608101906150bf565b86818110611b7c57611b7c615089565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015611bd357600080fd5b505af1158015611be7573d6000803e3d6000fd5b5050505080611bf5906151d4565b9050611971565b506002604051611c0b90615136565b908152604051908190036020019020546001600160a01b0316634c4f1ce3858585818110611c3b57611c3b615089565b9050602002810190611c4d919061509f565b611c5e906060810190604001614965565b33878787818110611c7157611c71615089565b9050602002810190611c83919061509f565b60200135888888818110611c9957611c99615089565b9050602002810190611cab919061509f565b611cb99060608101906150bf565b6040518663ffffffff1660e01b8152600401611cd99594939291906151ef565b600060405180830381600087803b158015611cf357600080fd5b505af1158015611d07573d6000803e3d6000fd5b50611d1893508492506151d4915050565b9050611530565b505050565b60008060005b600954811015611e8f576001600160a01b03841660009081526004602052604081206009805483919085908110611d6357611d63615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020541115611e7f57611e7260098281548110611da457611da4615089565b9060005260206000200160009054906101000a90046001600160a01b031660046000876001600160a01b03166001600160a01b03168152602001908152602001600020600060098581548110611dfc57611dfc615089565b60009182526020808320909101546001600160a01b03168352828101939093526040918201902080548251818502810185019093528083529192909190830182828015611e6857602002820191906000526020600020905b815481526020019060010190808311611e54575b5050505050611e96565b611e7c908361511e565b91505b611e88816151d4565b9050611d2a565b5092915050565b60008060005b8351811015611ee457611ec885858381518110611ebb57611ebb615089565b6020026020010151613925565b611ed2908361511e565b9150611edd816151d4565b9050611e9c565b509392505050565b60008054600160a01b900460ff1615611f175760405162461bcd60e51b81526004016106d090614ffd565b6001600160a01b03831660009081526008602052604081205460609060ff1615611fcf576002604051611f4990615136565b908152604051908190036020018120546335dc838f60e11b82526001600160a01b031690636bb9071e90611f839088908890600401615282565b600060405180830381865afa158015611fa0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fc891908101906152d8565b9050612015565b83516001600160401b03811115611fe857611fe8614b41565b604051908082528060200260200182016040528015612011578160200160208202803683370190505b5090505b60005b84518110156120a957612045338787848151811061203857612038615089565b6020026020010151612cf1565b61204e57600080fd5b61208d8686838151811061206457612064615089565b602002602001015184848151811061207e5761207e615089565b60200260200101516001613c3e565b612097908461511e565b92506120a2816151d4565b9050612018565b5060026040516120b890615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906120f29033908690600401615038565b600060405180830381600087803b15801561210c57600080fd5b505af1158015612120573d6000803e3d6000fd5b5093979650505050505050565b6000546001600160a01b031633146121575760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f25782828281811061217457612174615089565b90506020020160208101906121899190614965565b600286868481811061219d5761219d615089565b90506020028101906121af919061535d565b6040516121bd9291906153a3565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790556121f5816151d4565b905061215a565b6000546001600160a01b031633146122265760405162461bcd60e51b81526004016106d090614fc8565b61223060006140a0565b565b6004602052826000526040600020602052816000526040600020818154811061225a57600080fd5b9060005260206000200160009250925050505481565b600054600160a01b900460ff161561229a5760405162461bcd60e51b81526004016106d090614ffd565b6000805b60095481101561260c5733600090815260046020526040812060098054839190859081106122ce576122ce615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411156125fc576060600860006009848154811061231257612312615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561245457600260405161234d90615136565b90815260405190819003602001902054600980546001600160a01b0390921691636bb9071e91908590811061238457612384615089565b6000918252602080832090910154338352600490915260408220600980546001600160a01b03909316939192889081106123c0576123c0615089565b60009182526020808320909101546001600160a01b03168352820192909252604090810190912090516001600160e01b031960e085901b1681526124089291906004016153b3565b600060405180830381865afa158015612425573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261244d91908101906152d8565b90506124e3565b336000908152600460205260408120600980549192918590811061247a5761247a615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020546001600160401b038111156124b6576124b6614b41565b6040519080825280602002602001820160405280156124df578160200160208202803683370190505b5090505b60005b336000908152600460205260408120600980549192918690811061250c5761250c615089565b60009182526020808320909101546001600160a01b031683528201929092526040019020548110156125f9576125dd6009848154811061254e5761254e615089565b6000918252602080832090910154338352600490915260408220600980546001600160a01b039093169391928890811061258a5761258a615089565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054849081106125c0576125c0615089565b906000526020600020015484848151811061207e5761207e615089565b6125e7908561511e565b93506125f2816151d4565b90506124e6565b50505b612605816151d4565b905061229e565b50600260405161261b90615027565b9081526040519081900360200181205463f5d82b6b60e01b82526001600160a01b03169063f5d82b6b906114c49033908590600401615038565b600054600160a01b900460ff161561267f5760405162461bcd60e51b81526004016106d090614ffd565b6001600160a01b0384166000908152600a60205260409020546126a157600080fd5b60005b828110156127b157336001600160a01b038616636352211e8686858181106126ce576126ce615089565b905060200201356040518263ffffffff1660e01b81526004016126f391815260200190565b602060405180830381865afa158015612710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127349190615401565b6001600160a01b03161461274757600080fd5b6001600160a01b0385166000908152600b6020526040812060019186868581811061277457612774615089565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550806127aa906151d4565b90506126a4565b50801561285c5760026040516127c690615027565b9081526040805160209281900383019020546001600160a01b038781166000908152600a909452919092205491169063f0dda65c90339061280890869061541e565b6040518363ffffffff1660e01b8152600401612825929190615038565b600060405180830381600087803b15801561283f57600080fd5b505af1158015612853573d6000803e3d6000fd5b505050506107a6565b600260405161286a90615027565b9081526040805160209281900383019020546001600160a01b038781166000908152600a909452919092205491169063f5d82b6b9033906128ac90869061541e565b6040518363ffffffff1660e01b81526004016128c9929190615038565b600060405180830381600087803b1580156128e357600080fd5b505af11580156128f7573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461292b5760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f25782828281811061294857612948615089565b90506020020135600a600087878581811061296557612965615089565b905060200201602081019061297a9190614965565b6001600160a01b0316815260208101919091526040016000205561299d816151d4565b905061292e565b600760205282600052604060002060205281600052604060002081815481106129cc57600080fd5b6000918252602090912060029091020180546001909101549093509150839050565b6000546001600160a01b03163314612a185760405162461bcd60e51b81526004016106d090614fc8565b60005b81811015612ada57600060086000858585818110612a3b57612a3b615089565b9050602002016020810190612a509190614965565b6001600160a01b03166001600160a01b031681526020019081526020016000209050858583818110612a8457612a84615089565b905060400201602001358160010181905550858583818110612aa857612aa8615089565b612abe92602060409092020190810191506149bc565b815460ff1916901515179055612ad3816151d4565b9050612a1b565b506114f2600983836148d8565b6000546001600160a01b03163314612b115760405162461bcd60e51b81526004016106d090614fc8565b600655565b6000546001600160a01b03163314612b405760405162461bcd60e51b81526004016106d090614fc8565b60005b838110156114f257828282818110612b5d57612b5d615089565b905060200201356003868684818110612b7857612b78615089565b9050602002810190612b8a919061535d565b604051612b989291906153a3565b90815260405190819003602001902055612bb1816151d4565b9050612b43565b600062015180600860006002604051612bdf90676d696e745061737360c01b815260080190565b9081526040805160209281900383019020546001600160a01b039081168452838301949094529182016000908120600101549387168152600c825282812054600d9092529190912054612c32904261543d565b612c3c919061541e565b612c46919061541e565b612c509190615454565b92915050565b6000546001600160a01b03163314612c805760405162461bcd60e51b81526004016106d090614fc8565b6001600160a01b038116612ce55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d0565b612cee816140a0565b50565b6000805b6001600160a01b03808616600090815260046020908152604080832093881683529290522054811015612d87576001600160a01b038086166000908152600460209081526040808320938816835292905220805484919083908110612d5c57612d5c615089565b90600052602060002001541415612d77576001915050612d8d565b612d80816151d4565b9050612cf5565b50600090505b9392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905290812054606091906001600160401b03811115612dd757612dd7614b41565b604051908082528060200260200182016040528015612e3357816020015b612e206040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200190600190039081612df55790505b50905060005b6001600160a01b03808616600090815260046020908152604080832093881683529290522054811015611ee4576001600160a01b038086166000908152600460209081526040808320938816835292905220805482908110612e9d57612e9d615089565b9060005260206000200154828281518110612eba57612eba615089565b602090810291909101810151919091526001600160a01b038086166000818152600584526040808220938a16825260048552808220928252919093528220805491929184908110612f0d57612f0d615089565b9060005260206000200154815260200190815260200160002060000154828281518110612f3c57612f3c615089565b6020908102919091018101518101919091526001600160a01b038086166000818152600584526040808220938a16825260048552808220928252919093528220805491929184908110612f9157612f91615089565b9060005260206000200154815260200190815260200160002060010154828281518110612fc057612fc0615089565b6020908102919091018101516040908101929092526001600160a01b03808716600081815260058452848120928a16815260048452848120918152925291812080548490811061301257613012615089565b906000526020600020015481526020019081526020016000206002015482828151811061304157613041615089565b602090810291909101015160600152613059816151d4565b9050612e39565b6009818154811061307057600080fd5b6000918252602090912001546001600160a01b0316905081565b60008061309683612bb8565b6001600160a01b039093166000908152600d602052604090204290555090919050565b6001600160a01b038616600090815260086020526040812054819060609060ff16156131755760026040516130ed90615136565b908152604051908190036020018120546335dc838f60e11b82526001600160a01b031690636bb9071e90613129908c908c908c90600401615181565b600060405180830381865afa158015613146573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261316e91908101906152d8565b90506131ba565b866001600160401b0381111561318d5761318d614b41565b6040519080825280602002602001820160405280156131b6578160200160208202803683370190505b5090505b60005b87811015613306576131e8338b8b8b858181106131dc576131dc615089565b90506020020135612cf1565b6131f157600080fd5b61322e8a8a8a8481811061320757613207615089565b9050602002013584848151811061322057613220615089565b602002602001015189613c3e565b613238908461511e565b925061325d8a8a8a8481811061325057613250615089565b90506020020135876140f0565b86156132f657896001600160a01b03166342842e0e30338c8c8681811061328657613286615089565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156132dd57600080fd5b505af11580156132f1573d6000803e3d6000fd5b505050505b6132ff816151d4565b90506131bd565b509098975050505050505050565b600080805b600954811015611e8f576000848152600760205260408120600980549192918490811061334857613348615089565b60009182526020808320909101546001600160a01b03168352820192909252604001902054613377908361511e565b9150613382816151d4565b9050613319565b806133c2573360009081526004602090815260408083206001600160a01b03881684528252822080546001810182559083529120018390555b506001600160a01b0390921660009081526005602090815260408083209383529290522090815542600190910155565b60005b81811015611d1f5782828281811061340f5761340f615089565b9050602002810190613421919061509f565b61342f9060e08101906150bf565b1515905061343c57613913565b600160005b84848481811061345357613453615089565b9050602002810190613465919061509f565b6134739060608101906150bf565b905081101561378757600085858581811061349057613490615089565b90506020028101906134a2919061509f565b6134b3906060810190604001614965565b8686868181106134c5576134c5615089565b90506020028101906134d7919061509f565b6134e59060608101906150bf565b848181106134f5576134f5615089565b9050602002013587878781811061350e5761350e615089565b9050602002810190613520919061509f565b61352e9060808101906150bf565b8581811061353e5761353e615089565b9050602002013588888881811061355757613557615089565b9050602002810190613569919061509f565b6135779060c08101906150bf565b8681811061358757613587615089565b905060200201602081019061359c91906149bc565b8989898181106135ae576135ae615089565b90506020028101906135c0919061509f565b6135ce9060a08101906150bf565b878181106135de576135de615089565b90506020020160208101906135f391906149bc565b60405160609590951b6bffffffffffffffffffffffff1916602086015260348501939093526054840191909152151560f890811b6074840152901515901b607582015260760160405160208183030381529060405280519060200120905060006136aa826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000613740828989898181106136c4576136c4615089565b90506020028101906136d6919061509f565b6136e49060e08101906150bf565b878181106136f4576136f4615089565b9050602002810190613706919061535d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061423492505050565b905084801561376f57506001600160a01b0381161580159061376f57506001546001600160a01b038281169116145b9450505050808061377f906151d4565b915050613441565b508061379257600080fd5b60026040516137a090615136565b908152604051908190036020019020546001600160a01b0316632ffe7dc38585858181106137d0576137d0615089565b90506020028101906137e2919061509f565b6137f3906060810190604001614965565b86868681811061380557613805615089565b9050602002810190613817919061509f565b6138259060608101906150bf565b88888881811061383757613837615089565b9050602002810190613849919061509f565b6138579060808101906150bf565b8a8a8a81811061386957613869615089565b905060200281019061387b919061509f565b6138899060a08101906150bf565b8c8c8c81811061389b5761389b615089565b90506020028101906138ad919061509f565b6138bb9060c08101906150bf565b6040518a63ffffffff1660e01b81526004016138df999897969594939291906154b8565b600060405180830381600087803b1580156138f957600080fd5b505af115801561390d573d6000803e3d6000fd5b50505050505b8061391d816151d4565b9150506133f5565b6001600160a01b03821660009081526005602090815260408083208484529091528120600101548190620151809061395d904261543d565b6001600160a01b038616600090815260086020526040902060010154613983919061541e565b61398d9190615454565b905060036040516139ac9067747261696e696e6760c01b815260080190565b9081526040805160209281900383019020546001600160a01b03871660009081526005845282812087825290935291205414156139f1576139ee600282615454565b90505b6001600160a01b03841660009081526008602052604090205460ff1615613abe5760646002604051613a2290615136565b90815260405190819003602001812054635498e3b760e01b82526001600160a01b031690635498e3b790613a5c9088908890600401615038565b602060405180830381865afa158015613a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9d91906151bb565b613aa7908361541e565b613ab19190615454565b613abb908261511e565b90505b6003604051613acc906151a6565b9081526040805160209281900383019020546001600160a01b0387166000908152600584528281208782529093529120541415612d8d576001600160a01b038416600081815260056020908152604080832087845282528083206002015483526007825280832093835292905290812090805b8254811015613b8b5785838281548110613b5b57613b5b615089565b9060005260206000209060020201600101541415613b7b57809150613b8b565b613b84816151d4565b9050613b3f565b8254811415613bac5760405162461bcd60e51b81526004016106d09061552a565b6283d600600654600860008a6001600160a01b03166001600160a01b0316815260200190815260200160002060010154858581548110613bee57613bee615089565b90600052602060002090600202016000015442613c0b919061543d565b613c15919061541e565b613c1f919061541e565b613c299190615454565b613c33908561511e565b979650505050505050565b6001600160a01b038416600090815260056020908152604080832086845290915281206001015481906201518090613c76904261543d565b6001600160a01b038816600090815260086020526040902060010154613c9c919061541e565b613ca69190615454565b90506003604051613cc59067747261696e696e6760c01b815260080190565b9081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613d0a57613d07600282615454565b90505b60405165626174746c6560d01b81526003906006019081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613d6e57613d61600282615454565b613d6b908261511e565b90505b6001600160a01b03861660009081526008602052604090205460ff1615613db2576064613d9b858361541e565b613da59190615454565b613daf908261511e565b90505b6003604051613dc0906151a6565b9081526040805160209281900383019020546001600160a01b0389166000908152600584528281208982529093529120541415613f58576001600160a01b038616600081815260056020908152604080832089845282528083206002015483526007825280832093835292905290812090805b8254811015613e7f5787838281548110613e4f57613e4f615089565b9060005260206000209060020201600101541415613e6f57809150613e7f565b613e78816151d4565b9050613e33565b8254811415613ea05760405162461bcd60e51b81526004016106d09061552a565b6283d600600654600860008c6001600160a01b03166001600160a01b0316815260200190815260200160002060010154858581548110613ee257613ee2615089565b90600052602060002090600202016000015442613eff919061543d565b613f09919061541e565b613f13919061541e565b613f1d9190615454565b613f27908561511e565b93508515613f545742838381548110613f4257613f42615089565b60009182526020909120600290910201555b5050505b60405167747261696e696e6760c01b81526003906008019081526040805160209281900383019020546001600160a01b03891660009081526005845282812089825290935291205414614066576002604051613fb390615136565b9081526040805160209281900383018120546001600160a01b038a81166000818152600587528581208c82529096529390942054636474283760e11b835260048301939093526024820189905260448201859052606482019290925291169063c8e8506e906084016020604051808303816000875af115801561403a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405e9190615265565b614066575060005b8215614097576001600160a01b03861660009081526005602090815260408083208884529091529020426001909101555b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60026040516140fe906151a6565b908152604051908190036020019020546001600160a01b03848116911614156141345761412a82613314565b1561413457600080fd5b806141af573360009081526004602090815260408083206001600160a01b038716845290915290206141669083614250565b3360009081526004602090815260408083206001600160a01b038716845290915290208054806141985761419861554d565b600190038181906000526020600020016000905590555b60036040516141bd906151a6565b9081526040805160209281900383019020546001600160a01b03861660009081526005845282812086825290935291205414156141fe576141fe838361436f565b506001600160a01b0390911660009081526005602090815260408083209383529290529081208181556001810182905560020155565b60008060006142438585614418565b91509150611ee481614488565b6000805b8354811015614299578284828154811061427057614270615089565b9060005260206000200154141561428957809150614299565b614292816151d4565b9050614254565b83548114156142ba5760405162461bcd60e51b81526004016106d09061552a565b83546142c89060019061543d565b82146107a65760008483815481106142e2576142e2615089565b906000526020600020015490508460018680549050614301919061543d565b8154811061431157614311615089565b906000526020600020015485848154811061432e5761432e615089565b60009182526020909120015584548190869061434c9060019061543d565b8154811061435c5761435c615089565b6000918252602090912001555050505050565b6001600160a01b0382166000818152600560209081526040808320858452825280832060020154835260078252808320938352929052206143b09082614643565b6001600160a01b0382166000818152600560209081526040808320858452825280832060020154835260078252808320938352929052208054806143f6576143f661554d565b6000828152602081206002600019909301928302018181556001015590555050565b60008082516041141561444f5760208301516040840151606085015160001a614443878285856147b2565b94509450505050614481565b825160401415614479576020830151604084015161446e86838361489f565b935093505050614481565b506000905060025b9250929050565b600081600481111561449c5761449c615563565b14156144a55750565b60018160048111156144b9576144b9615563565b14156145075760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106d0565b600281600481111561451b5761451b615563565b14156145695760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106d0565b600381600481111561457d5761457d615563565b14156145d65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106d0565b60048160048111156145ea576145ea615563565b1415612cee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106d0565b6000805b8354811015614693578284828154811061466357614663615089565b906000526020600020906002020160010154141561468357809150614693565b61468c816151d4565b9050614647565b83548114156146b45760405162461bcd60e51b81526004016106d09061552a565b83546146c29060019061543d565b82146107a65760008483815481106146dc576146dc615089565b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050846001868054905061471d919061543d565b8154811061472d5761472d615089565b906000526020600020906002020185848154811061474d5761474d615089565b6000918252602090912082546002909202019081556001918201549082015585548291879161477c919061543d565b8154811061478c5761478c615089565b600091825260209182902083516002909202019081559101516001909101555050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156147e95750600090506003614896565b8460ff16601b1415801561480157508460ff16601c14155b156148125750600090506004614896565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614866573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661488f57600060019250925050614896565b9150600090505b94509492505050565b6000806001600160ff1b038316816148bc60ff86901c601b61511e565b90506148ca878288856147b2565b935093505050935093915050565b82805482825590600052602060002090810192821561492b579160200282015b8281111561492b5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906148f8565b5061493792915061493b565b5090565b5b80821115614937576000815560010161493c565b6001600160a01b0381168114612cee57600080fd5b60006020828403121561497757600080fd5b8135612d8d81614950565b6000806040838503121561499557600080fd5b82356149a081614950565b946020939093013593505050565b8015158114612cee57600080fd5b6000602082840312156149ce57600080fd5b8135612d8d816149ae565b60008083601f8401126149eb57600080fd5b5081356001600160401b03811115614a0257600080fd5b6020830191508360208260051b850101111561448157600080fd5b60008060208385031215614a3057600080fd5b82356001600160401b03811115614a4657600080fd5b614a52858286016149d9565b90969095509350505050565b60008083601f840112614a7057600080fd5b5081356001600160401b03811115614a8757600080fd5b60208301915083602082850101111561448157600080fd5b600080600080600060808688031215614ab757600080fd5b8535614ac281614950565b94506020860135614ad281614950565b93506040860135925060608601356001600160401b03811115614af457600080fd5b614b0088828901614a5e565b969995985093965092949392505050565b60008060408385031215614b2457600080fd5b823591506020830135614b36816149ae565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b7f57614b7f614b41565b604052919050565b60006020808385031215614b9a57600080fd5b82356001600160401b0380821115614bb157600080fd5b818501915085601f830112614bc557600080fd5b813581811115614bd757614bd7614b41565b614be9601f8201601f19168501614b57565b91508082528684828501011115614bff57600080fd5b8084840185840137600090820190930192909252509392505050565b60006001600160401b03821115614c3457614c34614b41565b5060051b60200190565b60008060408385031215614c5157600080fd5b8235614c5c81614950565b91506020838101356001600160401b03811115614c7857600080fd5b8401601f81018613614c8957600080fd5b8035614c9c614c9782614c1b565b614b57565b81815260059190911b82018301908381019088831115614cbb57600080fd5b928401925b82841015614cd957833582529284019290840190614cc0565b80955050505050509250929050565b60008060008060408587031215614cfe57600080fd5b84356001600160401b0380821115614d1557600080fd5b614d21888389016149d9565b90965094506020870135915080821115614d3a57600080fd5b50614d47878288016149d9565b95989497509550505050565b600080600060608486031215614d6857600080fd5b8335614d7381614950565b92506020840135614d8381614950565b929592945050506040919091013590565b60008060008060608587031215614daa57600080fd5b8435614db581614950565b935060208501356001600160401b03811115614dd057600080fd5b614ddc878288016149d9565b9094509250506040850135614df0816149ae565b939692955090935050565b600080600060608486031215614e1057600080fd5b833592506020840135614d8381614950565b60008060008060408587031215614e3857600080fd5b84356001600160401b0380821115614e4f57600080fd5b818701915087601f830112614e6357600080fd5b813581811115614e7257600080fd5b8860208260061b8501011115614e8757600080fd5b602092830196509450908601359080821115614d3a57600080fd5b600060208284031215614eb457600080fd5b5035919050565b60008060008060008060a08789031215614ed457600080fd5b8635614edf81614950565b95506020870135614eef81614950565b9450604087013593506060870135925060808701356001600160401b03811115614f1857600080fd5b614f2489828a01614a5e565b979a9699509497509295939492505050565b60008060408385031215614f4957600080fd5b8235614f5481614950565b91506020830135614b3681614950565b602080825282518282018190526000919060409081850190868401855b82811015614fbb57815180518552868101518786015285810151868601526060908101519085015260809093019290850190600101614f81565b5091979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b643a37b5b2b760d91b815260050190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052603260045260246000fd5b6000823560fe198336030181126150b557600080fd5b9190910192915050565b6000808335601e198436030181126150d657600080fd5b8301803591506001600160401b038211156150f057600080fd5b6020019150600581901b360382131561448157600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561513157615131615108565b500190565b6867616d65537461747360b81b815260090190565b81835260006001600160fb1b0383111561516457600080fd5b8260051b8083602087013760009401602001938452509192915050565b6001600160a01b0384168152604060208201819052600090614097908301848661514b565b6874726565486f75736560b81b815260090190565b6000602082840312156151cd57600080fd5b5051919050565b60006000198214156151e8576151e8615108565b5060010190565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090613c33908301848661514b565b60008235603e198336030181126150b557600080fd5b60408152600061524d60408301858761514b565b905060018060a01b0383166020830152949350505050565b60006020828403121561527757600080fd5b8151612d8d816149ae565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b818110156152cb578451835293830193918301916001016152af565b5090979650505050505050565b600060208083850312156152eb57600080fd5b82516001600160401b0381111561530157600080fd5b8301601f8101851361531257600080fd5b8051615320614c9782614c1b565b81815260059190911b8201830190838101908783111561533f57600080fd5b928401925b82841015613c3357835182529284019290840190615344565b6000808335601e1984360301811261537457600080fd5b8301803591506001600160401b0382111561538e57600080fd5b60200191503681900382131561448157600080fd5b8183823760009101908152919050565b6001600160a01b0383168152604060208083018290528354918301829052600084815281812090929091906060850190845b818110156152cb578454835260019485019492840192016153e5565b60006020828403121561541357600080fd5b8151612d8d81614950565b600081600019048311821515161561543857615438615108565b500290565b60008282101561544f5761544f615108565b500390565b60008261547157634e487b7160e01b600052601260045260246000fd5b500490565b8183526000602080850194508260005b858110156154ad578135615499816149ae565b151587529582019590820190600101615486565b509495945050505050565b6001600160a01b038a16815260a0602082018190526000906154dd9083018a8c61514b565b82810360408401526154f081898b61514b565b90508281036060840152615505818789615476565b9050828103608084015261551a818587615476565b9c9b505050505050505050505050565b6020808252600990820152681393d50813d5d3915160ba1b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220f16e2a2d6e3df9817d43f7bc7d532ca08db3de3e8e8186650249f20ee803b52164736f6c634300080a0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.