Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 226 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Token | 17278060 | 1019 days ago | IN | 0 ETH | 0.00332906 | ||||
| Withdraw ETH | 17273337 | 1020 days ago | IN | 0 ETH | 0.002413 | ||||
| Participate | 17273303 | 1020 days ago | IN | 0.09 ETH | 0.00546769 | ||||
| Participate | 17273301 | 1020 days ago | IN | 0.069 ETH | 0.00531357 | ||||
| Participate | 17273296 | 1020 days ago | IN | 0.36 ETH | 0.00553714 | ||||
| Participate | 17273293 | 1020 days ago | IN | 0.069 ETH | 0.00577144 | ||||
| Participate | 17273292 | 1020 days ago | IN | 0.36 ETH | 0.005593 | ||||
| Participate | 17273291 | 1020 days ago | IN | 0.2 ETH | 0.00585752 | ||||
| Participate | 17273291 | 1020 days ago | IN | 0.36 ETH | 0.00585752 | ||||
| Participate | 17273289 | 1020 days ago | IN | 0.1 ETH | 0.00581721 | ||||
| Participate | 17273284 | 1020 days ago | IN | 0.16 ETH | 0.0037792 | ||||
| Participate | 17273278 | 1020 days ago | IN | 0.069 ETH | 0.00578864 | ||||
| Participate | 17273264 | 1020 days ago | IN | 0.36 ETH | 0.0058838 | ||||
| Participate | 17273252 | 1020 days ago | IN | 0.1 ETH | 0.00590468 | ||||
| Participate | 17273245 | 1020 days ago | IN | 0.36 ETH | 0.0062032 | ||||
| Participate | 17273241 | 1020 days ago | IN | 0.36 ETH | 0.00673662 | ||||
| Participate | 17273238 | 1020 days ago | IN | 0.36 ETH | 0.00597576 | ||||
| Participate | 17273238 | 1020 days ago | IN | 0.36 ETH | 0.00613451 | ||||
| Participate | 17273237 | 1020 days ago | IN | 0.36 ETH | 0.00616468 | ||||
| Participate | 17273237 | 1020 days ago | IN | 0.36 ETH | 0.00616468 | ||||
| Participate | 17273237 | 1020 days ago | IN | 0.36 ETH | 0.00633303 | ||||
| Participate | 17273237 | 1020 days ago | IN | 0.36 ETH | 0.00766539 | ||||
| Participate | 17273234 | 1020 days ago | IN | 0.36 ETH | 0.00622401 | ||||
| Participate | 17273230 | 1020 days ago | IN | 0.36 ETH | 0.00703103 | ||||
| Participate | 17273228 | 1020 days ago | IN | 0.36 ETH | 0.00732088 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 17273337 | 1020 days ago | 46.88451428 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Presale
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicense
pragma solidity 0.8.17;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/utils/Address.sol";
contract Presale is Ownable, Pausable, ReentrancyGuard {
using SafeMath for uint256;
using SafeERC20 for IERC20;
address public DEV; // dev address.
IERC20 public HORNY = IERC20(0x3d939F3aAB9aF971a9eDA1bC63A768D0DF386f66);
uint256 public rate = 5072463768000000000000000000; // token per eth.
uint256 public maxCap = 69000000000000000000; //the maximum amount of eth to be raised during the presale.
uint256 public startTime = 1684166400; //the start time of the presale.
uint256 public endTime = 1684252800; //the end time of the presale.
uint public minPurchase = 69000000000000000; //the minimum amount of token that a user can purchase.
uint public maxPurchase = 360000000000000000; //the maximum amount of token that a user can purchase.
// Mapping addresses claims amount.
mapping(address => bool) public RefundsClaimed;
// Mapping addresses claims amount.
mapping(address => uint256) public TokenClaimed;
// Mapping eth amount user participated.
mapping(address => uint256) public ParticipatedAmount;
// Mapping to keep track of how many tokens each user has bought.
mapping(address => uint256) public TokenBought;
// Mapping for whitelisted addresses.
mapping(address => bool) public WhitelistedAddresses;
uint8[11] claimPercentages = [50,5,5,5,5,5,5,5,5,5,5];
uint32[11] claimTimestamps = [1684252800, 1684339200, 1684425600, 1684512000, 1684598400, 1684684800, 1684771200, 1684857600, 1684944000, 1685030400, 1685116800];
bool public openRefund = false;
modifier presaleOnGoing() {
require(block.timestamp >= startTime, "Presale not started yet");
require(block.timestamp <= endTime, "Presale ended");
_;
}
modifier onlyWhitelisted() {
require(WhitelistedAddresses[msg.sender] == true, "Address is not whitelisted");
_;
}
constructor() {
DEV = msg.sender;
WhitelistedAddresses[address(0xa6e3Bf8A020Aa0d2C6598134Aa2d1345fb7B0c3f)] = true;
WhitelistedAddresses[address(0x96236DF78A02e53FA9C4ac8043E8D6E2D997a2DF)] = true;
WhitelistedAddresses[address(0xE1F53b52f441629F9B99b6c4625547fBA528DcDC)] = true;
WhitelistedAddresses[address(0xac18BAD4072a8dd2F5F6ac3dcA06d0f4BEC43e6B)] = true;
WhitelistedAddresses[address(0x93518625d9786476ca71eF98424FE90E2Df31a66)] = true;
WhitelistedAddresses[address(0xF3F04181b89a8EBbdA2d950419AaF26aDd709D5f)] = true;
WhitelistedAddresses[address(0x1bFE5847Af93370A2684d63a9DF7B81CF1F78053)] = true;
WhitelistedAddresses[address(0x25569ecB5a421bD57F5CFA11f665b7795C9854Bb)] = true;
WhitelistedAddresses[address(0x735D8A1DD0b3fb3e0F394A738ec5262E48032E92)] = true;
WhitelistedAddresses[address(0x653625f4DdcD9B99da7CE9aCa4CA8236a056c419)] = true;
WhitelistedAddresses[address(0x60dC00767CcBD25Ab5c029a88d49Ccb40Cd25468)] = true;
WhitelistedAddresses[address(0x3dFFb6E87756e86D127Ef06c348d2bbD5a0a592C)] = true;
WhitelistedAddresses[address(0x92cb3811BDaa4b477d07121b301B56351e0Dae3c)] = true;
WhitelistedAddresses[address(0x7CaB7B18396d3Fe40946C0fD9399332ef474C113)] = true;
WhitelistedAddresses[address(0x91757aaA0863b894865E5701a9a9c49E2e54e52D)] = true;
WhitelistedAddresses[address(0x7777777E71De38333ffF9Dde08FF64c602b8A56D)] = true;
WhitelistedAddresses[address(0x3d869084c46d39de7cE06DdC4a96b86ec606dBBb)] = true;
WhitelistedAddresses[address(0x3F478ee2B4d9BF72B5b3b2469ac12A17a9e60d57)] = true;
WhitelistedAddresses[address(0x90288121Aeb294eD88bd709BF6De58a476ad7808)] = true;
WhitelistedAddresses[address(0x54a6523F22B31A90E7b1FF179F36D609f40ff931)] = true;
WhitelistedAddresses[address(0x44A959aD7f7C84CeBdF67938af0d47A6481b90Ae)] = true;
WhitelistedAddresses[address(0x543Cd03e1F38FB2f6F78Cf8e3f4283e48fAE61e8)] = true;
WhitelistedAddresses[address(0xd843FE4E858D2281055aBEE0d652f9249E11ee6D)] = true;
WhitelistedAddresses[address(0x39E121297240Ac7F72E7487D799a0fC06422e216)] = true;
WhitelistedAddresses[address(0x0Aa4639a381b9C28dC9c896fb3284E04Ebb91801)] = true;
WhitelistedAddresses[address(0x9570fbD500d3591A19C8e3b07E5656249FBDe200)] = true;
WhitelistedAddresses[address(0x4BDC3308d002Dd88C833496b2a2E06414fffcDbf)] = true;
WhitelistedAddresses[address(0x8aB11C12C3beD4fd47C22FC7F5C00D754e260F86)] = true;
WhitelistedAddresses[address(0x7E19Ff5cC01A540804cf4b449DBffdE48b81C0D6)] = true;
WhitelistedAddresses[address(0x99fDb1aF7389c345c6Ef06D527157a47638b879E)] = true;
WhitelistedAddresses[address(0xB22e1868840E22B17c98DCa8Dc1154CEe00BEF8d)] = true;
WhitelistedAddresses[address(0xa3E4cE21f91Ae21eFF25FFb783d6CB0671044888)] = true;
WhitelistedAddresses[address(0xbDAf6CC19801d692964F56430270248A01B638db)] = true;
WhitelistedAddresses[address(0xd3898129d4acb0F8039b1B9D6367B236F1E6100f)] = true;
WhitelistedAddresses[address(0x55414c27833b96F7792D668c4Eb1A48A4e404076)] = true;
WhitelistedAddresses[address(0x900D9Dc725f4468941948Ff3B6E717aD4ED3C4cC)] = true;
WhitelistedAddresses[address(0x70eA9E56A4BCb1e560AC1c4f7c0787c0a0f91058)] = true;
WhitelistedAddresses[address(0xC6411ca5A80dEB7ABc0827DA82E2DDB9C906614a)] = true;
WhitelistedAddresses[address(0x08F5AE9f9f102D8C4ED20cBCff11F6d32cF82cb1)] = true;
WhitelistedAddresses[address(0x3DEF7260739e963f79E236e99f0E24C4f2E08B69)] = true;
WhitelistedAddresses[address(0x5c7fcE16Aef068CC7d35CB8D9a880dd36809bf72)] = true;
WhitelistedAddresses[address(0xA4ed808e51A3Ae54712BfD39512C9c8B009cf332)] = true;
WhitelistedAddresses[address(0x6A5529D7BD136A934c3A5d8Ec06D92BD46db5603)] = true;
WhitelistedAddresses[address(0x5281Ff3Fa12221799782B7a40046f392C83F7BCD)] = true;
WhitelistedAddresses[address(0xD34604aCc4e6cA8F99287251B7b6f78BF9BFEEc5)] = true;
WhitelistedAddresses[address(0x4c026CfAF8273ebC48e481F6Ea84AD85c2c15423)] = true;
WhitelistedAddresses[address(0xaB1AF81c86A7d624e806FF486d7F6D7162C448Ab)] = true;
WhitelistedAddresses[address(0x4305B1864AFD62a64924F737ED7C11642c0e9b1a)] = true;
WhitelistedAddresses[address(0x58b5503C7c246611851C70c3bD59b4838EF4e9a0)] = true;
WhitelistedAddresses[address(0xF01B3Cc10834F075fb62E37E3b6ed36CFEB1c88F)] = true;
WhitelistedAddresses[address(0xA64847981123446a53E38a812DE89E0451fE898D)] = true;
WhitelistedAddresses[address(0xB7F71520bA9CF419Bdfd616554F0B0C6472D26E9)] = true;
WhitelistedAddresses[address(0x5603cc70a3Cb72F3b6162688AC275e806a87E7e6)] = true;
WhitelistedAddresses[address(0xDB4882F596E403Aad1DF6efAed9A1CAd39aEfcCA)] = true;
WhitelistedAddresses[address(0xD2f5C2a5cD1379fA902A48dec787c8aebEDF6DE6)] = true;
WhitelistedAddresses[address(0x048345376109ff3Cb7732A00f33F7c59aaa6B282)] = true;
WhitelistedAddresses[address(0x4b28e4C3192cca4A87433758ee7CDaFDbe8E6336)] = true;
WhitelistedAddresses[address(0xFE9e83D496E07a548493426337b73c53F592468B)] = true;
WhitelistedAddresses[address(0x3333ae2c9D62289e8591DA64655e0894193B7886)] = true;
WhitelistedAddresses[address(0x77F00a4676844AF2C576aB240a423DCd81664c8E)] = true;
WhitelistedAddresses[address(0x9Fe2aB08d8A63b1D6dD6C9E55561149BDED65FD9)] = true;
WhitelistedAddresses[address(0xe173Dd0BB2B006A914639B32998752cDa7960084)] = true;
WhitelistedAddresses[address(0xA9213872c33ab857C432eae9f0a375026f0c0949)] = true;
WhitelistedAddresses[address(0x2D8dBc864264d041EB11D074223cc2FDbBfC41f1)] = true;
WhitelistedAddresses[address(0x5ab17F0dF3b08191F510b8806BAf2d835dd50671)] = true;
WhitelistedAddresses[address(0x151b8c6E66BA9Da24720BD95fb5C1420C0fa6236)] = true;
WhitelistedAddresses[address(0xFb7FCF76C84DE5c2687Af28583ad1b69B7f25c9d)] = true;
WhitelistedAddresses[address(0xe82040e2f6788c7207E4dF90A3A878d25224F49C)] = true;
WhitelistedAddresses[address(0x7Eab3236fb6A5DEe88af23D48eB36F74e3245ee5)] = true;
WhitelistedAddresses[address(0xA0B4339B50aa3fbF514b7173e6b9667D7558f9AA)] = true;
WhitelistedAddresses[address(0x6eF4E9D4a1976547E36e48fb97CF722b4fD47953)] = true;
WhitelistedAddresses[address(0x9D5165f3BADde028d717365c852F90eB7e2f9971)] = true;
WhitelistedAddresses[address(0xeBf87396267A4829B3a1a3EDb400246A9BE07723)] = true;
WhitelistedAddresses[address(0xD08cB9f1D35f232fD9e7F3802Fa3B01f01777670)] = true;
WhitelistedAddresses[address(0x5Ae7D3Fa7b2DfF39ECa420d38412d9Af9fc799C8)] = true;
WhitelistedAddresses[address(0x7f04c4387423c5460f0a797b79B7De2A4769567A)] = true;
WhitelistedAddresses[address(0x2898f6cC2C3b2B0d5A8a2e579912323A1ACA9686)] = true;
WhitelistedAddresses[address(0x5Df36B9516084066e6877188128bFcD5946da8AE)] = true;
WhitelistedAddresses[address(0x305Ad938a16DcdCAb5C8b8B4684258ad69d5B3f2)] = true;
WhitelistedAddresses[address(0xfB50611d81aA763B0A94Cd06c906FD54734F1bE1)] = true;
WhitelistedAddresses[address(0x689cFB50807b38beF965F90D97965F2c0dCD396a)] = true;
WhitelistedAddresses[address(0x2a030fF3a0a001834eAc35B2fE4bEF3478ED04Bb)] = true;
WhitelistedAddresses[address(0x4155D3462059650DC1227853e16131De98449d1F)] = true;
WhitelistedAddresses[address(0x8916Caa43e7bcf7A4B9A482563D96e4E5c07F713)] = true;
WhitelistedAddresses[address(0x830077D75c03eCD994c744Ef4D2DCA5ff4b8D52C)] = true;
WhitelistedAddresses[address(0x451d34f1d0c5aD9bAc1cc186b1b513A2abeFc93d)] = true;
WhitelistedAddresses[address(0x11d51D91751969f7e4A3B71E3d9F8E0c2027Ced7)] = true;
WhitelistedAddresses[address(0x06Db70CC9bBa81436C6dFD5249A3f3d8bE362F29)] = true;
WhitelistedAddresses[address(0xbe9253fbA3c2e71d7255102a50574ECaA93128bE)] = true;
WhitelistedAddresses[address(0x744e4c1fFAf3295e3f52bf6AeE309b8A520a2b7f)] = true;
WhitelistedAddresses[address(0x782BFf5A6074148b1f8c4E81B41F9297eFee2f8d)] = true;
WhitelistedAddresses[address(0x7CE8998D936EA5427260e9B73121B959b7bDAcc9)] = true;
WhitelistedAddresses[address(0xB8adc10EC1277feF7f04d49A7687745A5f4eDdc5)] = true;
WhitelistedAddresses[address(0xdB912FAb7AB5FD40F17fD470573b3B999c62232c)] = true;
WhitelistedAddresses[address(0xF805dD75AFCea9AC000Ae4713b9662a9b1703F89)] = true;
WhitelistedAddresses[address(0xc7BCa70ce407b484550a0142d756b5a10a990e4D)] = true;
WhitelistedAddresses[address(0x2B03aAB6227a2B2fd18564033Bc7eC2a633D49f7)] = true;
WhitelistedAddresses[address(0xe7802D58698e0F69219b82E140208fC2108FBfBB)] = true;
WhitelistedAddresses[address(0xeaA88EfDb766934F138ABE9E8Db6390bF440Dcad)] = true;
WhitelistedAddresses[address(0x60271172103596d9f22496a7b391c4d361e4907C)] = true;
WhitelistedAddresses[address(0xFc17690341AE1d85CFf8D747578C0c0DF58A0970)] = true;
WhitelistedAddresses[address(0xE093540dBe149aab0376F0F2Bd07111E6723b769)] = true;
WhitelistedAddresses[address(0xf6CaD61ed398289B480c916A54cAc99b3575309F)] = true;
WhitelistedAddresses[address(0x1a444C51ED230b289eF6a2164B6Dc64a090bf9d7)] = true;
WhitelistedAddresses[address(0x3079a30EC75471a58dF4ecF0E559007B2F014AFC)] = true;
WhitelistedAddresses[address(0x7B4085b43962f02846660AE0646E0533409c1df1)] = true;
WhitelistedAddresses[address(0x18F3058b940C987Dc3Eaa9c219f9186109AA83fD)] = true;
WhitelistedAddresses[address(0x5D0011e952B9653DD96b260700e5aca4A59f1696)] = true;
WhitelistedAddresses[address(0x61451cdf1b0Fc61074579ABF6B540FFA3274a542)] = true;
WhitelistedAddresses[address(0x8185498685E9fd8996D0b1995A88FdBB6b80759d)] = true;
WhitelistedAddresses[address(0x146fca56b701D33E607c5223849076eaf2e00eec)] = true;
WhitelistedAddresses[address(0xE9c590Af334cB7075104a9158845A1c1FFa3e8C5)] = true;
WhitelistedAddresses[address(0xD27Ab905b888f3FAfC0FB79FB00D7b5153285c18)] = true;
WhitelistedAddresses[address(0x93cCFdF78900A38Aa0Be8bE3935534249D9BAB07)] = true;
WhitelistedAddresses[address(0x6eA999bCAF20Ca151d5F01cc4A08151Bb8aBe67E)] = true;
WhitelistedAddresses[address(0x424896B31CA5cCFE8F3b8E0595F5cB2A0AeE158E)] = true;
WhitelistedAddresses[address(0x0279582676AffC46622AdD562A35bc9042FB425d)] = true;
WhitelistedAddresses[address(0xdf09092bAe5C265e404e0a8Ce01eBF341481F531)] = true;
WhitelistedAddresses[address(0xa2F8f118e2C301A9e8eD54fE14767e3d58122F3f)] = true;
WhitelistedAddresses[address(0x7E3Ed68a06845ED4565ae3134671dfDB89083358)] = true;
WhitelistedAddresses[address(0x898AAd455336577D0f5864cb4287bEF4bC895849)] = true;
WhitelistedAddresses[address(0x1F38ee2730E9169013b35DC8a538Dd438aDE505d)] = true;
WhitelistedAddresses[address(0x642CAd320AEEf2FF7Ce1d3355e34153F647E4D5e)] = true;
WhitelistedAddresses[address(0x9fb0F455C760eC034b498880d80504f5327767B9)] = true;
WhitelistedAddresses[address(0x1A31A79c2FdCd8234438e232d91f30ee81040a74)] = true;
WhitelistedAddresses[address(0xb7BD83023cdc550b1da2E4C19eC6eBb6fC371A98)] = true;
WhitelistedAddresses[address(0xEc7BC683149717B3FBd57A3e2C44d49b35B156Dc)] = true;
WhitelistedAddresses[address(0x8333150E6462716f7307760A6C46b258f144004F)] = true;
WhitelistedAddresses[address(0x7aC2A33Bb5c612DB5814f169c0d033b0A4CB3056)] = true;
WhitelistedAddresses[address(0x6Aac14753cCC62053e2fbC7AF9bE15F93603143F)] = true;
WhitelistedAddresses[address(0xe9262Ae15c8d3AA76fEC2Ef4C79b2A2B3158Ac0a)] = true;
WhitelistedAddresses[address(0x6C8Ee01F1f8B62E987b3D18F6F28b22a0Ada755f)] = true;
WhitelistedAddresses[address(0xBF24D26B534A19E4F09c0B698b2CBffF820a452E)] = true;
WhitelistedAddresses[address(0xa394e5A73117a50eDCB7C6440D44638Cf854b92c)] = true;
WhitelistedAddresses[address(0xdcC54e8E093Ba4eb69d9A5A2933044C3cc22B9F1)] = true;
WhitelistedAddresses[address(0x6Ef6265b3A2866aAb07aaAD3338cd034481f9cf7)] = true;
WhitelistedAddresses[address(0x3dA60b72c9eFCDAAdB70D9ceA3a99FFd5d0FC9D0)] = true;
WhitelistedAddresses[address(0xa5CdaA29D9CDE0D6C8bb68AEe31A0B779e6AC6B5)] = true;
WhitelistedAddresses[address(0x89212212326727b3a836C54353F92f21f9A71614)] = true;
WhitelistedAddresses[address(0xb0071eF1aD12A0218Ab5f4ef95c63C0743F01cB9)] = true;
WhitelistedAddresses[address(0x1dDCe419C9FA95613B55A60Ea0f9f5136d2865A8)] = true;
WhitelistedAddresses[address(0x3162947986982E70B2FAC2A90bA49d8657F34334)] = true;
WhitelistedAddresses[address(0x9E29A34dFd3Cb99798E8D88515FEe01f2e4cD5a8)] = true;
WhitelistedAddresses[address(0x9654dFC4D328d94cecB4152BE4B2865Ffd9eDFdB)] = true;
WhitelistedAddresses[address(0x5E988A7A71296A07FAa77DE91615864BCf60931E)] = true;
WhitelistedAddresses[address(0xc888C19A101979E0C29274895A86f0C3BaB6Cf7b)] = true;
WhitelistedAddresses[address(0xFbeC2c5cbB8bf4179E605520c6Be48D75ED5dF81)] = true;
WhitelistedAddresses[address(0x43657142e17cafc6F894724DfA5e381eD838CdB8)] = true;
WhitelistedAddresses[address(0x6406e3EaCC064BB6C5D4D9379E413017bFeBABc5)] = true;
WhitelistedAddresses[address(0xeE20b1A6F93882303ef00D9fA517130d9Aa6175D)] = true;
WhitelistedAddresses[address(0x910915b4EF4B48737b786E5f279124ba2D088f4A)] = true;
WhitelistedAddresses[address(0x4eE9F84FB578F392a80191ffE5F937B66Eef5699)] = true;
WhitelistedAddresses[address(0x8b45539774574B6d6BFcc12846273617C1986967)] = true;
WhitelistedAddresses[address(0xd4aCad6D89DcC601bA239826e7F052a20a6976f4)] = true;
WhitelistedAddresses[address(0x78CE582399e5DFc46AbC38e10D38a21Cd1b1E444)] = true;
WhitelistedAddresses[address(0xD3E906e94150bD2B32fccF092Db3b82a65853EE2)] = true;
WhitelistedAddresses[address(0x58d334e6ea0dF5a5C200d19007371215C9550bcf)] = true;
WhitelistedAddresses[address(0xcefBc24f9725516BDC329EDf5a300a5c03949b42)] = true;
WhitelistedAddresses[address(0x43d5AE611AE02084487C73De38b2f2053292A1E1)] = true;
WhitelistedAddresses[address(0xC9ED609fF81853950B0605282870bAC975863042)] = true;
WhitelistedAddresses[address(0xeb740de6Aa5041A9CB0B8347A898e173f2a0234F)] = true;
WhitelistedAddresses[address(0x4227666183beA7D8F064dC1179d333E7dA2A3828)] = true;
WhitelistedAddresses[address(0xA1342B27953a25e4C87FCee629841284BA7a1BCC)] = true;
WhitelistedAddresses[address(0xdDb6eF6c62a13e43cdf7C95Aa9Fc030924DcDcBC)] = true;
WhitelistedAddresses[address(0x829C0F59FF906fd617F84f6790AF18f440D0C108)] = true;
WhitelistedAddresses[address(0x0C308c7d3D85e57bC9b07c811dc7267dcF440549)] = true;
WhitelistedAddresses[address(0x3F50b1278488c0409E47fb7352db4381ef63A271)] = true;
WhitelistedAddresses[address(0xdd614DB103f998Ff9d63E255fc3B1588882d5e11)] = true;
WhitelistedAddresses[address(0x53cb975548deFAdaCCb3183473B49db65D44065b)] = true;
WhitelistedAddresses[address(0xEa548ae95BE4f5f3fd864c4F65e8c0780b508e79)] = true;
WhitelistedAddresses[address(0xaD50ce8546cFEBCc60eB8359041bBA52b80363FF)] = true;
WhitelistedAddresses[address(0x5aA84D8B823B033601E79a5dE2d083FDA5866238)] = true;
WhitelistedAddresses[address(0x56C03f4e9Eb2B5764908fB2C42c90783E670Af3C)] = true;
WhitelistedAddresses[address(0x8f15720176ECF89a034509985B7C7Ea886C7775B)] = true;
WhitelistedAddresses[address(0xde26eCF4bd74bb7cA4c9c08C30Fd8638b369e579)] = true;
WhitelistedAddresses[address(0x422dfBB161b364B21A33Cf04d1251168c49B0603)] = true;
WhitelistedAddresses[address(0x10caAA4936592CAbc556ba82Cb940bb44eC5f879)] = true;
WhitelistedAddresses[address(0x329e7A5b57E877Da469C38B7bB885b2DB7ACdDFA)] = true;
WhitelistedAddresses[address(0x8802cF6b248a4136b1C8172375245a85108cDc30)] = true;
WhitelistedAddresses[address(0xBAD5039e9F917b2A3650e15Bcb51C87c579F3124)] = true;
WhitelistedAddresses[address(0xdF1ED4C64a77D80E380Bb5D3190e67ACc5C0FFea)] = true;
WhitelistedAddresses[address(0xC76215a376c2B979567B114634AC5f95cc4eceba)] = true;
WhitelistedAddresses[address(0xA56E7000C09d6b6E54B6998D0E70456244af9A4C)] = true;
WhitelistedAddresses[address(0x7B8c1C44ED2B4A725aAac11CdadA1B13E54A9E1e)] = true;
WhitelistedAddresses[address(0xf44D3ddCE7D5aa95757a9f6F0f78A8bAdBb39631)] = true;
WhitelistedAddresses[address(0xe30185b81bCC9Ce290325A68c3F3748497D8A46C)] = true;
WhitelistedAddresses[address(0x5C9e8eec2002001E3C7fD59A947C24B979410ABD)] = true;
WhitelistedAddresses[address(0x9b445092e94CB14Af24CF8f0350F483ADE6AdFE2)] = true;
WhitelistedAddresses[address(0x1805Bf187022DD7402539EfACB195A46D74bF0AF)] = true;
WhitelistedAddresses[address(0xc858Db9Fd379d21B49B2216e8bFC6588bE3354D7)] = true;
WhitelistedAddresses[address(0x6253C923127D4b77FB9A581B398cb7E63C602c09)] = true;
WhitelistedAddresses[address(0xf4D1a203b3A79385BCbf66960051522402ac917E)] = true;
WhitelistedAddresses[address(0xD51Ce9bE4a1cb6185B76Ba825C59236a6Cf5ca2A)] = true;
WhitelistedAddresses[address(0xf382c59e22fBf49C56619A5f799b03ed52392E9d)] = true;
WhitelistedAddresses[address(0x2F80f930aF7aE24905e1dfC153d11d3AB0b0BE5A)] = true;
WhitelistedAddresses[address(0x964824A9fAbC60Ba2A8e70A910c113A8C98b1512)] = true;
WhitelistedAddresses[address(0x57971e13e42594bDcb2caD2460af84e25f40217C)] = true;
WhitelistedAddresses[address(0x1FE61315E9400401aDd9e420BEB0f84Ca8A69f93)] = true;
WhitelistedAddresses[address(0x5f52A88F55e6c1fBb965F77b4906397f25C997E4)] = true;
WhitelistedAddresses[address(0xC9D33672e012352df7F868ec02D3bba213BD7518)] = true;
WhitelistedAddresses[address(0xC261c472a5fea6f1002dA278d55D2D4463f000ef)] = true;
WhitelistedAddresses[address(0x23079A3DD8acf2F1C174aB3e2a450Aa097ee1F4D)] = true;
WhitelistedAddresses[address(0xa9560598DE9d53B9Ee305A090845027Ea55dc820)] = true;
WhitelistedAddresses[address(0x0fA0DDEE288BEC1a47952318649FDF7F338f70E1)] = true;
WhitelistedAddresses[address(0x3ca11205Cb331AEDe70d1Ece6E41836D9364DBe0)] = true;
WhitelistedAddresses[address(0xe575e79F0d87904b2d74daaC45e283682fA20Bff)] = true;
WhitelistedAddresses[address(0xb168954199f7B18267cE9CE760Ca3e5a20bE4D3b)] = true;
WhitelistedAddresses[address(0xc35adDEFbCc7d3D6897Fcd17cEc4aA70B7bBED91)] = true;
WhitelistedAddresses[address(0x17aeBcFEcbA94622A446F6BB66AA745928C196bB)] = true;
WhitelistedAddresses[address(0xdE6c87BC55f0A9B2dBaE133Bf97aA9eFF5030E13)] = true;
WhitelistedAddresses[address(0xF63E5a7E23747e5491272c5D992E13EB4438C178)] = true;
WhitelistedAddresses[address(0xaa341368Fe3a5d1cc8314Dc07aF02334D9Aa1e1D)] = true;
WhitelistedAddresses[address(0x27A30d2D5904f1B24fafB227D9252b6048b97e07)] = true;
WhitelistedAddresses[address(0xEB5DFB7C51F711E9D6393b0dbBA89F75D339D15c)] = true;
WhitelistedAddresses[address(0xEDB6b12898b2a7436389002559Cf2483FCB599Ef)] = true;
WhitelistedAddresses[address(0x635C604d73fb5169b71d7D0046410Ec6C062AA6B)] = true;
WhitelistedAddresses[address(0x12227084921E35eCc43fd611bE4D49F85BEa9b5d)] = true;
WhitelistedAddresses[address(0xc704f68730ceca41aAefC9f3a9668d6498c99365)] = true;
WhitelistedAddresses[address(0x38BfDAB41f5184AC866A319ae10c484210C42F7f)] = true;
WhitelistedAddresses[address(0x38B8f8008cCE8A43EB223d7971dDC0800B940886)] = true;
WhitelistedAddresses[address(0x4a4CaE1D41e483336e46FC017D7B629f36B08176)] = true;
WhitelistedAddresses[address(0x5933aC67BDB1F13cE82b2E1d97f751114c08BCA6)] = true;
WhitelistedAddresses[address(0xFC5BB19F79A410f0D47E2533339C698345389C92)] = true;
WhitelistedAddresses[address(0x64C9a39113A9C0fDf96fc1F6E252952C029254A1)] = true;
WhitelistedAddresses[address(0xea63F69E65064bBF3304a8F4CeD6887A2a48D848)] = true;
WhitelistedAddresses[address(0x000000000000000000000000000000000000dEaD)] = true;
WhitelistedAddresses[address(0xF6E3a5f0f87FE1f760F6c9082d03270C73570610)] = true;
WhitelistedAddresses[address(0xBb93664780E5e4e22F5255c774bfc455eBFa789E)] = true;
WhitelistedAddresses[address(0x0b5edBbc4bD2967fA72aF955447799499d6e96c0)] = true;
WhitelistedAddresses[address(0x7ae3ee2D8293548A06DA0bcaC88994838C96b1c5)] = true;
WhitelistedAddresses[address(0xF989828320966a5DBaBc6800d14b42DfD53F070f)] = true;
WhitelistedAddresses[address(0x1F151FC620B031533C26b65A4c84baBF4B283bf5)] = true;
WhitelistedAddresses[address(0x888C65C45923D565dEe48B6E98ae5ED9b668D635)] = true;
WhitelistedAddresses[address(0x6A21F579e4C6da1eBD5570964bB883B41dB9Dab5)] = true;
WhitelistedAddresses[address(0x428D34931Bb5F44cf914e099C05EbcaDE4c6B79A)] = true;
WhitelistedAddresses[address(0x9745026E8D20EF4AC47337c3DFf6A38d846da5d2)] = true;
WhitelistedAddresses[address(0xA3A56DD2Be92D2251F313a4387D111317a564080)] = true;
WhitelistedAddresses[address(0x1Bd4f4ae1Ebc651168D02416D1814eAE6D2A352E)] = true;
WhitelistedAddresses[address(0xC11e79DDaA2229252904d889cc97CC35FAB20d45)] = true;
WhitelistedAddresses[address(0xF68b5aC56d88EC5B3d6Bba9492aE7Ba022950f35)] = true;
WhitelistedAddresses[address(0x5f2dC6194EEf7a348a8cEf952573AF6723208003)] = true;
WhitelistedAddresses[address(0x6af81C3BA58c9A22f7E6131fd00BbEA57c7381eD)] = true;
WhitelistedAddresses[address(0x733609987B8a8D00D7b24f5B633dBBDeAa1E8740)] = true;
WhitelistedAddresses[address(0x2E30Eb7af6E3119C2b8900D7E132a59C5e8257B0)] = true;
WhitelistedAddresses[address(0x110167e632a62E88B0BC9f507EC197a15f9883DC)] = true;
WhitelistedAddresses[address(0xe505a60e001fA64DfD7b0A95159f19EE0efEc336)] = true;
WhitelistedAddresses[address(0x7c5Da3494087cBA0ae94f928482CA355653ad048)] = true;
WhitelistedAddresses[address(0x426a5881454a853CE89540495Ae8479DB2d71db3)] = true;
WhitelistedAddresses[address(0xE087A1A1c4208138D470bE1Fc9240a492D80bBE0)] = true;
WhitelistedAddresses[address(0x660A5d24B36E4Ce4885653112Df2132F28483A62)] = true;
WhitelistedAddresses[address(0xB087ee7f8188EDcc1cd075F5eF144E812717d1aE)] = true;
WhitelistedAddresses[address(0x5E6f7603BAbed10f0aE29666CeC2aea445cA752f)] = true;
WhitelistedAddresses[address(0xe317C793ebc9d4A3732cA66e5a8fC4ffc213B989)] = true;
WhitelistedAddresses[address(0x8867c24D4727B7F3844375FBB4ACB1745A247d62)] = true;
WhitelistedAddresses[address(0x522a1296072C64CE3486549FA0602F23F374fA5F)] = true;
WhitelistedAddresses[address(0x0AFd25e81f126d87beE5347AAbBbDBF725f02AbD)] = true;
WhitelistedAddresses[address(0x5Ba427bdE16DE265948f1e86dB0C7391E0C65C4F)] = true;
WhitelistedAddresses[address(0xD69AfC50B0D5cB55F388b9453A36E520080B9923)] = true;
WhitelistedAddresses[address(0xEdD1ca44b5A758656DF1ea03f58dB2c503426bb6)] = true;
WhitelistedAddresses[address(0xC6C5a2C40a24371b7064b3dcfB98f83DB1313a8B)] = true;
WhitelistedAddresses[address(0xF7BCd63e9cFbEC0AF4237457Bbc2976406DAd866)] = true;
WhitelistedAddresses[address(0xd50226a48780D82a8537e8Feb1EC554cD6869be5)] = true;
WhitelistedAddresses[address(0x5E0FDc5A4A74C962C0c96fD457bb494B10d84a50)] = true;
WhitelistedAddresses[address(0xba7933402348A902064499ed883c49843Eeb7019)] = true;
WhitelistedAddresses[address(0xf53ED94f5FB975a5BE7Eb26a3fe6912057ff225A)] = true;
WhitelistedAddresses[address(0x9626ba74548BFEf0A976371Ad0804D429dE68e42)] = true;
WhitelistedAddresses[address(0x58077Bc939e7D5464F022a483B53ffe3a0BEDcb1)] = true;
WhitelistedAddresses[address(0x50C9De782444FcBf76b34E041865359F303904D1)] = true;
WhitelistedAddresses[address(0x86BFB79503460A7b6a9c111AC5D8C6Ae28a1AcBB)] = true;
WhitelistedAddresses[address(0xA57c19A01f5719b73738e7326a9c9C3e7E90F952)] = true;
WhitelistedAddresses[address(0x62Cb34D29EC4877cA54fbDF206E4631e01493488)] = true;
WhitelistedAddresses[address(0xc8B6341b7CB07E5D095B055FEA8490458dbD1125)] = true;
WhitelistedAddresses[address(0xBF601689698CE90ba5224Cf5175FfC1C105BC274)] = true;
WhitelistedAddresses[address(0x7c2Aca62D8fa5B044BA4Bfadd95c0fA174ca7bF2)] = true;
WhitelistedAddresses[address(0x39b65f3083Ba5B6AE565dedFa030f9B16253A86F)] = true;
WhitelistedAddresses[address(0x62BB6D5E99a73FEa24390A9825f89282eC4C908e)] = true;
WhitelistedAddresses[address(0xe631006BB6c774FdE23cB213E5AbCDd2EFD51541)] = true;
WhitelistedAddresses[address(0xFab74d244728a460552E44Cc1F8a33629bD3cDF9)] = true;
WhitelistedAddresses[address(0x2B3EC2D5Ff9ada834FEf215fF30857920A33E022)] = true;
WhitelistedAddresses[address(0xaf2BA95545a1Fd969c5246Af453A3c8DA91B874f)] = true;
WhitelistedAddresses[address(0xDb560D8B24bf54313789Ea1717C3D6527db5C7b2)] = true;
WhitelistedAddresses[address(0x40F4e230bBa803810eAe24EA3d4A674595F0183e)] = true;
WhitelistedAddresses[address(0x228CAa4729677F5E8A30E8F088af9A9064dA5fad)] = true;
WhitelistedAddresses[address(0xd1FaD074908E2E8C081660f7F002016b440B72BC)] = true;
WhitelistedAddresses[address(0xe4e61C6278ccD15ea332676B5C71d2c9708A23EC)] = true;
WhitelistedAddresses[address(0x9DE7aAD598BBB95833f5fb2007e0aB453CFA2A18)] = true;
WhitelistedAddresses[address(0x2cAA646D4EA5d023E421F5BfbBcaC73090e2b98E)] = true;
WhitelistedAddresses[address(0x6278c4eeFd0673b56f43B3A367e393Cdd60fe6c2)] = true;
WhitelistedAddresses[address(0x2D080E9911FfB8AADFaa8FEa9068003dC0A8bC5E)] = true;
WhitelistedAddresses[address(0x74a3A888aEdBF2608adbbC5aDBFF986a389De3A2)] = true;
WhitelistedAddresses[address(0x6A9b4BD87AA49574e107556FDEb9c7eb1C5f03f5)] = true;
WhitelistedAddresses[address(0x3568919B9d7A0483Ae9b375fe96F7df048f0Eff8)] = true;
WhitelistedAddresses[address(0x21d5956f409ED6D0fef72396D198cE39cADD85D6)] = true;
WhitelistedAddresses[address(0xaF8bC7936C7d841E9e326aF600418B7Cbf094E13)] = true;
WhitelistedAddresses[address(0xa0501600eD268594c6710c7531D6093c0fAd29DD)] = true;
WhitelistedAddresses[address(0x9661E1A71918Ce61AE7Cb7AFAafA7d66d28dceB4)] = true;
WhitelistedAddresses[address(0x0E42D8fCF5166D332ce8df3b65c5e20468fb7359)] = true;
WhitelistedAddresses[address(0xc62E76a6Bb03E76b3152413C2B018752f8BE7606)] = true;
WhitelistedAddresses[address(0xB56F3EEe1190a4b9335b8565Cd41Ab765B2b9235)] = true;
WhitelistedAddresses[address(0x0CDD65d3e6e80dA2e5A11F7C1cEdaCE730372D7E)] = true;
WhitelistedAddresses[address(0xFD9f99F300899ce82DdAB44fD11569D7DC321Bfb)] = true;
WhitelistedAddresses[address(0x3A47Dd3a326110b9FcEbEa4419349Dcc84F44BBF)] = true;
WhitelistedAddresses[address(0xf85Dd649FB05Db66Fd2B706839519F27cb3E7128)] = true;
WhitelistedAddresses[address(0x899FCf86e744d560ab35154Bb20737cCb3Abd550)] = true;
WhitelistedAddresses[address(0x61EED746E4C4C04E8129d0a97555d85eDc27f506)] = true;
WhitelistedAddresses[address(0x952E547cbe26BE59632B87B7F9286e5fD25A3899)] = true;
WhitelistedAddresses[address(0x0002937C976286ede8BbC21D2bb35f2a80ac1af3)] = true;
WhitelistedAddresses[address(0x6312327A69Aebd7a7BCcFC82C3566F4B8Cc963c0)] = true;
WhitelistedAddresses[address(0x04A52A9E509e5C14f88F72744Fd8868Cdd6BcFd1)] = true;
WhitelistedAddresses[address(0xd4562D7d62ceFeBada19449a0EbD4A8D2aFD0976)] = true;
WhitelistedAddresses[address(0x5457307a38c3e36844BFAa2e1fD61d72f69b7439)] = true;
WhitelistedAddresses[address(0xF8FD6b269ACd7aA144424140CBb26C5a4e5dC5bc)] = true;
WhitelistedAddresses[address(0xa198F54b9D0e49b00Bfd322b787270AA16e81391)] = true;
WhitelistedAddresses[address(0x3DA8C6A28A1B8AD5d084453Fb4c33059E4636db3)] = true;
WhitelistedAddresses[address(0xd2D8Fa8128dF45E6Bf61B5E8173ded3535e9a6C2)] = true;
WhitelistedAddresses[address(0xc5782c34bfE9e9Bb0933538973A8E2Dce9aa9f43)] = true;
WhitelistedAddresses[address(0xdDa10cf025e1A3d5136DcBee2B64dbAbf666C980)] = true;
WhitelistedAddresses[address(0x9E6FD664132522Ce3ae5dB73724d7cc5f0193e7e)] = true;
WhitelistedAddresses[address(0x76dD15b5C77477904D43ed5fDA138A6F18A1d68A)] = true;
WhitelistedAddresses[address(0xb89d308480f43F8b1c66a6810ae7A304281A0622)] = true;
WhitelistedAddresses[address(0xFde70f76bdf27486a5db15fbC64Bc8AF7D972580)] = true;
WhitelistedAddresses[address(0x8666F72C7939d48760E8D74b329386912BC6C9EE)] = true;
WhitelistedAddresses[address(0xcf25A23D533F9156eAb5Dfb6c2520901b475214c)] = true;
WhitelistedAddresses[address(0x8903614bd27bb982cac246c528f8c89bB865C14d)] = true;
WhitelistedAddresses[address(0xB9560b8dd3Fd5C1cbc3E2BCf1460818C8392188F)] = true;
WhitelistedAddresses[address(0x29c8C3ae4A3Ce83C6871109B7Ff1464A2b8ca7D0)] = true;
WhitelistedAddresses[address(0x1f810fA25ab83E6ADBd155AC1c4881d0186499e9)] = true;
WhitelistedAddresses[address(0xc74d830092053ed9Ec197eB3Fb9C272460fd32dC)] = true;
WhitelistedAddresses[address(0xE9EA479FA669898Ab763f6b0d6b191E29939B65A)] = true;
WhitelistedAddresses[address(0x795C98592026e6B53fc14D3082735379cF74741D)] = true;
WhitelistedAddresses[address(0x9Ed2e5D640A2296E02990dcAA90B29E817924B55)] = true;
WhitelistedAddresses[address(0x54Bcf4b079fCe4d95677c92A94EAa76cFCeBC15B)] = true;
WhitelistedAddresses[address(0xaE09aCB7a2A31300218ae94eFf1ae2C7Dc1B8Ac0)] = true;
WhitelistedAddresses[address(0x8669c51EeCE966cCAeA37e5304e29c672197E43F)] = true;
WhitelistedAddresses[address(0xbEb1b983B856f9329A9A52142Bd0dd1364269eFC)] = true;
WhitelistedAddresses[address(0x293b0972Ff93252Ea997E6a3B7466c325b4f8Db9)] = true;
WhitelistedAddresses[address(0x0B95f218d9032eBcb9ea928c7621e2EC7d19E390)] = true;
WhitelistedAddresses[address(0x0907Bb13fefC50e25B0bFBB7C1Af9C2e02dbDCE7)] = true;
WhitelistedAddresses[address(0x14c354EB512354EEc0e3b9608d4a2DE413909Ad2)] = true;
WhitelistedAddresses[address(0x0A566270B3659dcdBA017309006B63Cbd3f4f50f)] = true;
WhitelistedAddresses[address(0xE7fe672AAC0AC7f452e8cFfB2774e1BBeF7cc97d)] = true;
WhitelistedAddresses[address(0x0adfE9bB98aC3b7beF5E5174566435160503b400)] = true;
WhitelistedAddresses[address(0xC21201247427E9Fa68868E75f7581B770F07129B)] = true;
WhitelistedAddresses[address(0x2B9e18c39a66e6443A54e0CAfC8a056FB061D7c0)] = true;
WhitelistedAddresses[address(0x1631a603c76EED72B698cfbeBC9C42162d6A43F1)] = true;
WhitelistedAddresses[address(0xAd666FEF0004aA909C57750FB9477cb67AcFD367)] = true;
WhitelistedAddresses[address(0x778dC8Be92c0Ebf460b2e196F646626A3B9182B0)] = true;
WhitelistedAddresses[address(0x598E0C7F25C75ca94f44872b92487A827a479E06)] = true;
WhitelistedAddresses[address(0xc5aa4294048BCFfA965E6B135573632BdaBfE4DF)] = true;
WhitelistedAddresses[address(0x170fBB92a85981be86FF05101D11C033e9666Fbb)] = true;
WhitelistedAddresses[address(0x2B3ccb55a404c0E99ADD7E3041F76883E22E5E72)] = true;
WhitelistedAddresses[address(0xF10FF6c03c5f951C9A4d02cb0Dca51BA442B095E)] = true;
WhitelistedAddresses[address(0x9fc8a0B2F015613ad9c741BB54F3e35826570921)] = true;
WhitelistedAddresses[address(0xc579134B984DD3424d7d69f9860589CA10Fe4431)] = true;
WhitelistedAddresses[address(0xe30a31358F17b6468500Abb5Cbc043561c4a710e)] = true;
WhitelistedAddresses[address(0x2Ab5198940897d46aD9723b5603Cf137D7019b94)] = true;
WhitelistedAddresses[address(0xE9448D94F5F7aC4aF563cf47Eb4A906f11632BC6)] = true;
WhitelistedAddresses[address(0x2E09638b4428a88AEC4acA567bbF52a82D6AF069)] = true;
WhitelistedAddresses[address(0xD28Cc322DEb8c140863a6f26dF664C8f5688DC8D)] = true;
WhitelistedAddresses[address(0xC9652bb705C24eD933267c4cF0C66B92112b7dF2)] = true;
WhitelistedAddresses[address(0x161ecba139c75C900106eb76eB4428E4bebb2979)] = true;
WhitelistedAddresses[address(0x1C208DDbb3504D5a01cd2c7Eca75Bb0E1a7FeB45)] = true;
WhitelistedAddresses[address(0x2aA775B5183090b604DB392841D1363E53B87D1C)] = true;
WhitelistedAddresses[address(0x7BD1A11Ff0a334E48a1138125902cD7c8e3638f6)] = true;
WhitelistedAddresses[address(0xaDC0A789F09f3A936B370DF8A1880527Ad86222f)] = true;
WhitelistedAddresses[address(0x17Ff335E1B89CA48397A38fFE2Bb7013143d7DE6)] = true;
WhitelistedAddresses[address(0xd8ddd4A77C646DEBFFe67Bfbf6EF5666b8599b82)] = true;
WhitelistedAddresses[address(0xAb1b9521de0F0A30c43817c66C54C06A95548058)] = true;
WhitelistedAddresses[address(0x8Ee13d38cDdfA16d9102C06f8C6cF12A1963CbDc)] = true;
WhitelistedAddresses[address(0xA89f7b84FCC3Fb5d6422df5bAb038C353C1ca081)] = true;
WhitelistedAddresses[address(0x71C228fE764DAd8AF5425b6E409498d0c296AcBa)] = true;
WhitelistedAddresses[address(0x0586566A17125051792b66c9d3f1f8917db2DE87)] = true;
WhitelistedAddresses[address(0x6Cfd46fD992E7E0D8D836c4101dBFf6aD7201d7C)] = true;
WhitelistedAddresses[address(0xCC9d0c2B167E08791611c555fC6cFfd06c32CA3e)] = true;
WhitelistedAddresses[address(0x00a969B5AF9C9ecBDED435C980923B088A108E02)] = true;
WhitelistedAddresses[address(0x1e51eACe7F43cF52C7ac62e9368D6d5704f90CE8)] = true;
WhitelistedAddresses[address(0xcbbbB6391F86D863144c769c283f01eE10583591)] = true;
WhitelistedAddresses[address(0x477a4B0E6C0A032bCe1bBa17212C812283155203)] = true;
WhitelistedAddresses[address(0x7Bf8ce50e493b7117230Fdc60AD9Aa229cfb5D27)] = true;
WhitelistedAddresses[address(0x260e3eF2Cdf93E1bE2a1eEA90F8aE154165acF43)] = true;
WhitelistedAddresses[address(0xedF85C7fae46Ab9961A9A93252a264d3F78241f1)] = true;
WhitelistedAddresses[address(0xD7646114Bd2f5953391aBdA4e1439DC5D193961c)] = true;
WhitelistedAddresses[address(0xf9E3C49ECE851fed3343FdfBDA8C21228D7F14D0)] = true;
WhitelistedAddresses[address(0x69eeAfA89D44Fe07a0387e6e06f0343f77E4FbdE)] = true;
WhitelistedAddresses[address(0xcF0F10F2e4641395A15A4688D60BF4F4E266230D)] = true;
WhitelistedAddresses[address(0x500ac2E0670A1C6881a7bE290a5Df9bc119f9b91)] = true;
WhitelistedAddresses[address(0x0eA61442e781Af56E5147Fb1761cfA1E60215bed)] = true;
WhitelistedAddresses[address(0xA39d385628bd00438F8A9Ba4050a25A0210f84eb)] = true;
WhitelistedAddresses[address(0xf35bcA2b10934D9D37bf10bDb94be3bb091F4224)] = true;
WhitelistedAddresses[address(0x8C73E2538Af4e5161c286C04b49B4C9Fed89711b)] = true;
WhitelistedAddresses[address(0xDEb9Ce243ae25449269760ea809bfF031a9F2c3b)] = true;
WhitelistedAddresses[address(0xfABe2B0814E12072dfE5e28520BfEb8Eaf4BF88C)] = true;
WhitelistedAddresses[address(0xE6eEeCc0E6df1ba46c6f5e00B74A920448d54A6a)] = true;
WhitelistedAddresses[address(0x5F746D98B7c6585CB562e99cADdE7F2F259f1DD1)] = true;
WhitelistedAddresses[address(0x32E4941C48AfBc0c6C1248f4E2B3A57702E6Cafa)] = true;
WhitelistedAddresses[address(0xA699C70E8d840B0deD799Cb1e6650Dd988F7c503)] = true;
WhitelistedAddresses[address(0x635D7202B058ca37c57b6748F57B78A47F6E857c)] = true;
WhitelistedAddresses[address(0x651741aD4945bE1B8fEC753168DA613FC2060c01)] = true;
WhitelistedAddresses[address(0x5418569002CDC5cB7290f6175682731E0824ca7F)] = true;
WhitelistedAddresses[address(0x862Df13a2788Aba2da275cc54A9Fa5Fb13Ff06e6)] = true;
WhitelistedAddresses[address(0x896caD7806db533b7b57CF64B63ac3280AAD86aD)] = true;
WhitelistedAddresses[address(0xc55a4f326351627AF9c19982856B563fF926d412)] = true;
WhitelistedAddresses[address(0x421f5701278Eb177E1C1301FD22a5d32fAfD051a)] = true;
WhitelistedAddresses[address(0x38B06eb5a6b8B99930F4a95de0d31120d856fB76)] = true;
WhitelistedAddresses[address(0x70F94eeB2A15Ce4C560D1151649766576078E47B)] = true;
WhitelistedAddresses[address(0xfe02C02CA4cfF78EaD96BB8b2356EB5f0eB6FCc2)] = true;
WhitelistedAddresses[address(0xE444b87b24dcA580335C8c68f17a9bAE23a9f343)] = true;
WhitelistedAddresses[address(0x9fca8A43827D1b5eb5BCa6b4e06A63E690684727)] = true;
WhitelistedAddresses[address(0x4EdA99B9cF9599ECC287A51607853Beef3622164)] = true;
WhitelistedAddresses[address(0xB82C3E63A224Ff8AB687952EDc322df55EFB7248)] = true;
WhitelistedAddresses[address(0x7E06923A4c7CB47612dF661E04551BDc986EEB51)] = true;
WhitelistedAddresses[address(0xC3f97A825518404a2F303D7B057dd19B5B4ED63c)] = true;
WhitelistedAddresses[address(0x7062ebD460C210FafDfa1DC501e8dFB1e397E4aD)] = true;
WhitelistedAddresses[address(0x0eDA343D220bd110072e176A3225d5e9657F56f2)] = true;
WhitelistedAddresses[address(0x0B60638D1D29A12F3Af013F508B2eB30664a94ce)] = true;
WhitelistedAddresses[address(0xD7fE1FAc2F93740F72C94D1911b1b7773722126b)] = true;
WhitelistedAddresses[address(0xF5D373E30f6dF250eCed2aF19cb2F55d39a7192E)] = true;
WhitelistedAddresses[address(0x2A9CdFC0e068f84A33bBF9055756B2449705Cd68)] = true;
WhitelistedAddresses[address(0xe1A647FFca8d7Df36f4b3039F285a44f65b08337)] = true;
WhitelistedAddresses[address(0x77350B2e23c778b1bCcD0EDD97c6815cC9A27A17)] = true;
WhitelistedAddresses[address(0x9448BD67937bDEe1A1980390582ca19aAA65CB0D)] = true;
WhitelistedAddresses[address(0x369EEF3860061Fe441b8DB7BB9Ba1dD30A04CABa)] = true;
WhitelistedAddresses[address(0xea32C85c60E7511f3a2D7E17514c56FCe650bbBB)] = true;
WhitelistedAddresses[address(0xf6d52d338d7E8402cD3e18B2DDa90F2f0921343a)] = true;
WhitelistedAddresses[address(0x3C077b60163D0388a18fff0e907E0dE41E06B930)] = true;
WhitelistedAddresses[address(0xE75Fd4D5cf9E8033Ca4C74fb4BA0fF93579452B0)] = true;
WhitelistedAddresses[address(0x39480bd4566496ea4F283AF164f8c3eEC563d70B)] = true;
WhitelistedAddresses[address(0xA12EEeAad1D13f0938FEBd6a1B0e8b10AB31dbD6)] = true;
WhitelistedAddresses[address(0xE3F9Cb6D797B335BCE842F65FDbcbba9cA1b0599)] = true;
WhitelistedAddresses[address(0xD3dB31a56bCcdDEF6D2eD7F4e0eAC198d43A24bA)] = true;
WhitelistedAddresses[address(0x89ca22fA4355D45CDD12E7218878b29208a90FC9)] = true;
WhitelistedAddresses[address(0x87631B45877794f9cdd50a70c827403e3C36d072)] = true;
WhitelistedAddresses[address(0x940ec37d3Cde99a67f1d0377dF36f8f543D895F9)] = true;
WhitelistedAddresses[address(0x898E46843A25132904dDcf8Ad6744BE686C22Bbe)] = true;
WhitelistedAddresses[address(0xe453BcDaf790577bEA592Dbc43E6768a5dEa72bA)] = true;
WhitelistedAddresses[address(0x3A31c0200a7395d67b0e61514722D3cb0204C5b5)] = true;
WhitelistedAddresses[address(0x5d5641FFc02c05391d2588e18167651E01abB22d)] = true;
WhitelistedAddresses[address(0xc7743379Cd33B3Ab3DF361110fbb0C363CE77687)] = true;
WhitelistedAddresses[address(0x5Fc7FCB1f482CE9E0BE586b0Da2cA6248ed37c87)] = true;
WhitelistedAddresses[address(0xC434dEC64723C6A9115311189bC488c63bd3dFD5)] = true;
WhitelistedAddresses[address(0x81461501b083bd132F0040d7d1a595A4dd7071a3)] = true;
WhitelistedAddresses[address(0x31DC1c6D894F12F41B6854279C45847E96B4919d)] = true;
WhitelistedAddresses[address(0xBf2eF63aEaDCAA0252b6489d24647E38Ab1CF240)] = true;
WhitelistedAddresses[address(0xd566A0b8f90F783B96bCEc0785dCA9D14d7F505C)] = true;
WhitelistedAddresses[address(0xaFCf52fd0F571C424aE18Ad0e2f99608D85404fb)] = true;
WhitelistedAddresses[address(0xD1bEC7AF67bf556D4A4b98db679D873eec87c0c8)] = true;
WhitelistedAddresses[address(0x2758B31c399baFF893C085F2b2Ba2bDd8772bb99)] = true;
WhitelistedAddresses[address(0x1dbF00bc3f40F551d79422a96367A6F58Ae59412)] = true;
WhitelistedAddresses[address(0x3242743Ce82DB40511bcb7FEE58464A8a7706F67)] = true;
WhitelistedAddresses[address(0x2514462974be3CF51bB54F2A9fA55a2c4cC99b45)] = true;
WhitelistedAddresses[address(0x7eB46351792D5Db2d4Df2096C642a7d75DD5286a)] = true;
WhitelistedAddresses[address(0xd0E9380c26b3546c70588ff7Fc52CeC4Fd644e20)] = true;
WhitelistedAddresses[address(0x880AbAfe460360268B18A205C2872829eD3527E0)] = true;
WhitelistedAddresses[address(0xdab2567b352fB273E4F78249c0F4e36a46cC1B50)] = true;
WhitelistedAddresses[address(0xCA48004c5cd2575916382E4b3fb0888b6B93Bc01)] = true;
WhitelistedAddresses[address(0xE3eE2232cA8E9aa9F69445C000F987A6fB4358D9)] = true;
WhitelistedAddresses[address(0xD1Ab4c2DF29277eEf2c1b3515d9AbdB2859e58DA)] = true;
WhitelistedAddresses[address(0xe4155046d5AdE07FcD9683d6cB980ac8348B8B9F)] = true;
WhitelistedAddresses[address(0x2081BC6F0ed2e31fa40064D5Bc4bAc008ce7E85e)] = true;
WhitelistedAddresses[address(0x998280C00D90Fa742Ca24BecD6D897d26cd1539F)] = true;
WhitelistedAddresses[address(0xb99FF2A5FEA40C621D264d6985C1960BbB206773)] = true;
WhitelistedAddresses[address(0xB916887D50a9b044F8f953154fb1db2B6f02Ef55)] = true;
WhitelistedAddresses[address(0x176f5931c1Ef2701559851894633d234aAee3B00)] = true;
WhitelistedAddresses[address(0xCC63471F9821C4722b73F950E263aF3738c3B43e)] = true;
WhitelistedAddresses[address(0x46A83F3C0448513c3379ddF1E502F1b807a06CA3)] = true;
WhitelistedAddresses[address(0xEeE4EEbF8CB0D14eCC4c31B9a13F3a92eD81D113)] = true;
WhitelistedAddresses[address(0x172458fF1b115ba5C2076465977Baf6152C5Ac72)] = true;
WhitelistedAddresses[address(0xfEaD33f2D968b7AaCBb7a38b8014b1C7734f86bB)] = true;
WhitelistedAddresses[address(0x1e1F2A05747be3A55e89aE0C90AA977BCB8A8676)] = true;
WhitelistedAddresses[address(0xfEf946a53fa03067fec194CD9392b52066ddAbC3)] = true;
WhitelistedAddresses[address(0x1e06FDB842256f9CCe789d7c12E3c2b51B8D9f8a)] = true;
WhitelistedAddresses[address(0x3A7A45807891758826EbE07d332641a00B4bfb5e)] = true;
WhitelistedAddresses[address(0xE453fC5f3Ea25C450d3F996e7708e93f4EAdD6d2)] = true;
WhitelistedAddresses[address(0x2AbbdcAE6dCb79539Eec185eC0110b7F33B8c00c)] = true;
WhitelistedAddresses[address(0xfAcAA39d50006E2AdF348144Ab9F3209a5fF9934)] = true;
WhitelistedAddresses[address(0xA4afB515dc5FCB4d40949bE1c9520Ae71C0220D0)] = true;
WhitelistedAddresses[address(0x58C008A4D1BD809D0F98914154Cc8399E44F42d0)] = true;
WhitelistedAddresses[address(0xaf496250Dddb00a0B211ABb849460B69Ca5f27Dd)] = true;
WhitelistedAddresses[address(0xcE6882dB19a8cEA8095de48dDC7acDa3D2a00E5F)] = true;
WhitelistedAddresses[address(0x62313a505A91CF71448c0a05A2837346F157Eb8B)] = true;
WhitelistedAddresses[address(0x755bFdA33888639F18dF0141E4aec86f0F6e537c)] = true;
WhitelistedAddresses[address(0xd5F8E8205Ce848D987754600F08D53b728F92Ef6)] = true;
WhitelistedAddresses[address(0xBeA2465920827e2484aF359cDDAE02527044aF58)] = true;
WhitelistedAddresses[address(0x6D9aa3F92B284de9d800a7ad667857BDB22A1319)] = true;
WhitelistedAddresses[address(0x250D6544d18e43fa807333Eb0A747A62F5b25aA0)] = true;
WhitelistedAddresses[address(0x47FC4127FCd4EA8Ddd88059C3a1abE98Ea25c57D)] = true;
WhitelistedAddresses[address(0x34Efd1420B0934655880c8608baf27FE1DD37107)] = true;
WhitelistedAddresses[address(0xb390d28b28ae42093C6EF9cbb1fb55ad53C60aB0)] = true;
WhitelistedAddresses[address(0x9Af4b9C2aDdd427Aea06b5a312966767877dA4DC)] = true;
WhitelistedAddresses[address(0x4087aDd0db7180a41482A5717d5566E864FCabfb)] = true;
WhitelistedAddresses[address(0xd83eEfad08C551698C92Ad9796595809Bd891d8c)] = true;
WhitelistedAddresses[address(0x7CAbb73f5b840B245ec2528751445dA1F6DD7EEE)] = true;
WhitelistedAddresses[address(0x55f475fEad2707E65216a8db78448d7060E4B3f5)] = true;
WhitelistedAddresses[address(0x015B5e3eEAad31C1C710241D60F2BdE66B586D73)] = true;
WhitelistedAddresses[address(0xCcE9863cFb538E367751EECFe8CFf0632D7191C5)] = true;
WhitelistedAddresses[address(0xdFf79F883F927625678E4F10fbFCA8630F722CDC)] = true;
WhitelistedAddresses[address(0x5195682F5642EAAf42777B1559545f9b6c1E4258)] = true;
WhitelistedAddresses[address(0x9638056432b30206B4975ee8bdb3cE8F038Ed371)] = true;
WhitelistedAddresses[address(0xbC84054f87208680e74F31a229492F2d02B14b25)] = true;
WhitelistedAddresses[address(0x75b0C95b1188A0Ba43409FEC7b1f8A6363868DbB)] = true;
WhitelistedAddresses[address(0x29Ba5bb692AbA266e5cbF4dE191FdF01c4Ca3C83)] = true;
WhitelistedAddresses[address(0xB1B79644D5480672C2b4a202fFe67F3907633587)] = true;
WhitelistedAddresses[address(0xaE1e59e41a008CbCC0DDEe7fF7C8a98827E2f596)] = true;
WhitelistedAddresses[address(0x0927bA4B9E7176efDb6FF254f5Fdc84D5dF87f84)] = true;
WhitelistedAddresses[address(0xeBc453E098EA5Ca81E216441891c84BC4fB6e8E6)] = true;
WhitelistedAddresses[address(0x52eb77844BD497Aa3Fe5F09256b4bA27472a22d5)] = true;
WhitelistedAddresses[address(0x52BA15A2efbbBeF74B259329D82585DaA170dafB)] = true;
WhitelistedAddresses[address(0xfFE13b6A6DD56B218dA98C60a37b84144E858826)] = true;
WhitelistedAddresses[address(0x09E67Ff60d15A6ee730F9aAC94C1139FcB954fb5)] = true;
WhitelistedAddresses[address(0x66095A7BCb23A134bF97836CBCB2b933836a5ae8)] = true;
WhitelistedAddresses[address(0xC6C978FE118661d824C43D9cecdACA6BC0f3Fe1B)] = true;
WhitelistedAddresses[address(0xe8196f3C76c691249C8675ed1ee896De322B7AE7)] = true;
WhitelistedAddresses[address(0x32f65a9F649846f00Fd160C959E435a9500B2229)] = true;
WhitelistedAddresses[address(0x68d8c1dA927723132ebE6c708Febc4cf9D4d7438)] = true;
WhitelistedAddresses[address(0x0Ff056A0E2837DdE3aCb0E50dCf555Df9C34FA63)] = true;
WhitelistedAddresses[address(0xB54B06c0769F78eF88B4c0CbF73E7bD8bC26Ed31)] = true;
WhitelistedAddresses[address(0xdBC543ADDd5d92A2eB734f59cd3B98ac1a5414a3)] = true;
WhitelistedAddresses[address(0xAD606B0DF82FcE15D86925eF758F1951559b30d6)] = true;
WhitelistedAddresses[address(0x17251c8adb6CB6B831B0523BB6Cb2D0088B9CF74)] = true;
WhitelistedAddresses[address(0x3c94B8a65F23bFf83C78B59F3C30C12f2D25cA7B)] = true;
WhitelistedAddresses[address(0x25dFE94F20d26b14b76A564C660F939282Ad5720)] = true;
WhitelistedAddresses[address(0x7054ddbBc1A354220A9F5BdA3afae150303E643d)] = true;
WhitelistedAddresses[address(0x4C93191f1CD837448603Bd9bC28d9b4Aa44660E8)] = true;
WhitelistedAddresses[address(0x9D2e823d8854802e3CAC6162f3aDa71AC30C8673)] = true;
WhitelistedAddresses[address(0xaF81d9c86269982368d014937a926c91F285DA8f)] = true;
WhitelistedAddresses[address(0x82A4ae53F9883f7beA6d771A7d5B3ac6e93278Ba)] = true;
WhitelistedAddresses[address(0x43cB5a38678a6D835Cb52D5C35AA2f8D16488ca7)] = true;
WhitelistedAddresses[address(0x93465888859a75b31fc8378288d906B328b4126F)] = true;
WhitelistedAddresses[address(0x029e13C1dCde8972361C9552Ced69b97596e0E86)] = true;
WhitelistedAddresses[address(0x0C0c4ea708CaB9f2974c8856cB4a6fEA81ce15f9)] = true;
WhitelistedAddresses[address(0x1D3E52C1217458697291A6839C8aA3669F60239E)] = true;
WhitelistedAddresses[address(0x3f05A475Ce0697E3861a6CC1E03A1bb0e2A26Cbd)] = true;
WhitelistedAddresses[address(0x7c3B2e04f2C07b67dF7466071ec6017d86310279)] = true;
WhitelistedAddresses[address(0x7BF70C7095614339488B89c6AB84b1181995D323)] = true;
WhitelistedAddresses[address(0x27146Cd533760E0867db2647dad531FdE92d80EF)] = true;
WhitelistedAddresses[address(0x45665A9481f7b23db15D045AF62cbB7EF4F051ce)] = true;
WhitelistedAddresses[address(0x0324764daD031822BAD49e3d6fA57c9868f00edB)] = true;
WhitelistedAddresses[address(0xFD51e62220e3bF59F1aE246a85ee7e77bd4C5818)] = true;
WhitelistedAddresses[address(0xdB585E03a84AFf068455dAE488F942f6c1006812)] = true;
WhitelistedAddresses[address(0x17D3689587d72E189E9EB6309a1cb7D125498796)] = true;
WhitelistedAddresses[address(0x2d7Fc97cb70Fcd534499bD898E703d93287d0cfb)] = true;
WhitelistedAddresses[address(0xC5eEcA42De080A546554977A955288C5C298f141)] = true;
WhitelistedAddresses[address(0x86DF24ed835B3C5831c29c5c9Ec2eE9C58E8E161)] = true;
WhitelistedAddresses[address(0xB42ce66b5d548c3dfd343570878beB4a3f8a70C8)] = true;
WhitelistedAddresses[address(0x30B68C450AE2e7C33b70fF092d44a8aFE0496316)] = true;
WhitelistedAddresses[address(0x38a6A0da8C66467A3bE19e293FB6A7A10fA7b7d2)] = true;
WhitelistedAddresses[address(0x6397a1a452137b06b5a8ade0D2BD2017B7D1e09D)] = true;
WhitelistedAddresses[address(0xD4239c4528AfEd77ce902448db34225d3B48f5b0)] = true;
WhitelistedAddresses[address(0xCd11770a3cc4c313d5844686F7aA5Ec4B29E7787)] = true;
WhitelistedAddresses[address(0xCda6B9d1FA49F7AbB709E4A9B8206b1B1e03Cc53)] = true;
WhitelistedAddresses[address(0xF832685f095b5c33ff6cFB84d36473bA7D5A31fE)] = true;
WhitelistedAddresses[address(0x87Ddcee59a22920338DBFf068670395854d73645)] = true;
WhitelistedAddresses[address(0xAED970Dcd7BDF7966a2a660aC6d78B79F8AE0FdE)] = true;
WhitelistedAddresses[address(0x17bAD89Bc66b238495A84a793Ae527a0e993F02c)] = true;
WhitelistedAddresses[address(0x215bC454dA079d610abDf1619D1B29C7795A7996)] = true;
WhitelistedAddresses[address(0xa49A4Dd47963445Ed838E58A44722d675827567b)] = true;
WhitelistedAddresses[address(0xF191666E5696840D87f13BDCE5A6666090D06A2F)] = true;
WhitelistedAddresses[address(0x716096659dd0b82D1A7fF07b02a9Eb743907017B)] = true;
WhitelistedAddresses[address(0xA8879c580A54f190eD53b43d30dE269097aD7543)] = true;
WhitelistedAddresses[address(0x400BCb08aedA22862577Ca2BD23c91aF78a1ee6B)] = true;
WhitelistedAddresses[address(0x45d017a9Dc30c4baccC0CEfd2a52FafeAeFbC374)] = true;
WhitelistedAddresses[address(0x4a7ca2770e38416A0F6752cB7c0362b262d50C89)] = true;
WhitelistedAddresses[address(0x090E6dfF018F6f2C90Cdf28D517aDF056Fd826Fb)] = true;
WhitelistedAddresses[address(0x03aC3B14Ac989671e2CeaB10A9D24e71381ce562)] = true;
WhitelistedAddresses[address(0xe8815d64Ddfb81d413af256c5d49A6Ffc3E47984)] = true;
WhitelistedAddresses[address(0x9A4068018fCE659f613c7a6582d12c2750dE91bA)] = true;
WhitelistedAddresses[address(0xdaEE824A0519E1EaDE2a6988c36db3f0a3f874ac)] = true;
WhitelistedAddresses[address(0xB0FA5B7309184e617AF38ed308bFbB99544a6CFc)] = true;
WhitelistedAddresses[address(0x5D6a8b2CC08708438Fc421b503a1df4BA87Eb1A1)] = true;
WhitelistedAddresses[address(0x9B7f79e13768e4dAbA808492E59CAF16aaAc952E)] = true;
WhitelistedAddresses[address(0x6e12bd46B4B62Cecfc14537E3Fe2a0Fe8cb78C1a)] = true;
WhitelistedAddresses[address(0xdf98A47fDEd48e95E9C779c983F6949Cf8E41eE6)] = true;
WhitelistedAddresses[address(0x0559FB44AbE3b55074593E22d7E8DFC73750038a)] = true;
WhitelistedAddresses[address(0x87B618AbD3dbBba3416a5B88C2f2b84B2444CFf6)] = true;
WhitelistedAddresses[address(0x059B89883C29Bf8AeD94822e21Af0cfDD7Fe4A29)] = true;
WhitelistedAddresses[address(0x74921cc55F6Aa5d436F701790E7FbFc9829764ad)] = true;
WhitelistedAddresses[address(0x450eFDaeF71E0b1B8E0dB04F2fcCBd66FC992a60)] = true;
WhitelistedAddresses[address(0xf07Fb6B2CF121B59737801cC98aBcD84D9Ea2269)] = true;
WhitelistedAddresses[address(0xdfEb50F97Bb6A660697849Ac13645E2E26cC4915)] = true;
WhitelistedAddresses[address(0x9953DA7f2161866afAAD3c844CaaeE35A262a001)] = true;
WhitelistedAddresses[address(0x6B268881e12BcB9e4d550B009bA39eBB9cBaf9D7)] = true;
WhitelistedAddresses[address(0x349F53De125fA615c72D978e42EdDBdE216cB3aF)] = true;
WhitelistedAddresses[address(0x88382ac0262515b9784699E72B6eC49AC709d212)] = true;
WhitelistedAddresses[address(0x4A3cA69Bac2Ac82ebd855375b8775b4D392c18b3)] = true;
WhitelistedAddresses[address(0x43803B21E7D8a78a0c8487b6E9C1AD159c721Bb4)] = true;
WhitelistedAddresses[address(0xefeB34f3A790d44DCFA7dED3341d2e9888F7A294)] = true;
WhitelistedAddresses[address(0x2E5153Da5A5eBC0De21F23692B7c5cCE879c470e)] = true;
WhitelistedAddresses[address(0xAc04BD6f87ac7792B2746C6b7a897b38dC54Caeb)] = true;
WhitelistedAddresses[address(0x17aCc0e039E6a741027F49D9B75c1C2679D16EB6)] = true;
WhitelistedAddresses[address(0x23097b6abA22896E3c1E5e2e79D8efad0C4A011e)] = true;
WhitelistedAddresses[address(0x5246A3D6f191B9D0a35243aaC58258c653dE6F05)] = true;
WhitelistedAddresses[address(0x48D48E3b1fF8Fd0B65D989BFb7FB303ac28D03f5)] = true;
WhitelistedAddresses[address(0x7ab011Fe257e48A72Af66c3C08c2BaE45E9A1175)] = true;
WhitelistedAddresses[address(0x308eEa5B27EaD5f2111cF7c4e586cEec75083200)] = true;
WhitelistedAddresses[address(0x20151c34D01D6785493F3416b3f82812a3dbB46F)] = true;
WhitelistedAddresses[address(0x4576f30b8428a5C93d11849B74A654F982975445)] = true;
WhitelistedAddresses[address(0x2Bf446cfb88e70f0931434c7ee70B73de8AD6A10)] = true;
WhitelistedAddresses[address(0x2024134471B874fc6D35765Be66DA1e56f2e4be1)] = true;
WhitelistedAddresses[address(0x39A1b324bd8F501f600757733c163c0C73675297)] = true;
WhitelistedAddresses[address(0x1860CA387F185480b1b8A02a3D04b539aD13b16A)] = true;
WhitelistedAddresses[address(0xA6bF1e24e49a21BC2Cb5bbbD5befd04306EAC990)] = true;
WhitelistedAddresses[address(0x5F50fac657C1D2B402B1fd5358f145e5Ad6d0F73)] = true;
WhitelistedAddresses[address(0xbEFfddcf2E84106f77c2B60445Dc257D65e19a26)] = true;
WhitelistedAddresses[address(0x14cB9FD23ED06875F5534af4e90dA147D0A7FF4F)] = true;
WhitelistedAddresses[address(0x2718AA38cb0C94ba5d22A920b97942F359381683)] = true;
WhitelistedAddresses[address(0xccd660f2ED0A68d2bda3a41BD2eB67904fdc95C4)] = true;
WhitelistedAddresses[address(0x080979D7376b8a274DBD7971F3B4b5Da4538B8A4)] = true;
WhitelistedAddresses[address(0x2c2Cd43748fE1b82E83EF9b47eF9A1771DB1f907)] = true;
WhitelistedAddresses[address(0x8378f16DAd92B8aDe9024A2FE692a1F08beA6A6F)] = true;
WhitelistedAddresses[address(0x8247F1669a3d7f7F703484E1D1E80F1598236CC1)] = true;
WhitelistedAddresses[address(0xda3BB6f56e35aE6C62835a659867D6A370F02e0b)] = true;
WhitelistedAddresses[address(0x399E88209FD80579aec54c51160141817F84FFdE)] = true;
WhitelistedAddresses[address(0x5FE785B2f589c79c89DBbaFa217BD7dEdd8c918b)] = true;
WhitelistedAddresses[address(0xd41a08cfb00C671865C121B49a9FD72CB88730eb)] = true;
WhitelistedAddresses[address(0xa812a58b8cFb6f3648fBd8cc00485Bbcc43E5816)] = true;
WhitelistedAddresses[address(0xEA143346Bd8eCa087d33eE68C104Ee7e36928B65)] = true;
WhitelistedAddresses[address(0x78d5C3C0d4E18EEc6639960075ebBAF59d28B616)] = true;
WhitelistedAddresses[address(0x94bD4722E64786b3Becc30919F77562F00074cce)] = true;
WhitelistedAddresses[address(0xeBe542149af8FC42De564120ab8ddEdf227df1BF)] = true;
WhitelistedAddresses[address(0x55951b0d29056FC78806bCb9BBC9f62a79142eEc)] = true;
WhitelistedAddresses[address(0xb019253dD990de6e2D5ED399078e207138101A9c)] = true;
WhitelistedAddresses[address(0xd66F0288aB69ECaB9596EDBBe62884E790754938)] = true;
WhitelistedAddresses[address(0x5D8D277Eb3D552edc661E5a8073E40eb128454fB)] = true;
WhitelistedAddresses[address(0x9c38d48D2b364E5a4c7805C589BAAf93A3fdAebA)] = true;
WhitelistedAddresses[address(0x1cD72d8c5955Af057A7Eb0c2bEb538fC89769305)] = true;
WhitelistedAddresses[address(0x5b0e6c5595038538356C04b05bcCCde037E02850)] = true;
WhitelistedAddresses[address(0x27b8d11206bb4b412dd4Ad5700b3B57107140548)] = true;
WhitelistedAddresses[address(0x7d3e3834Ddf4a3852eF85DB39Ebaf50B415aD3ed)] = true;
WhitelistedAddresses[address(0xE9ab48Accb5F36A6F554F0A4395607F7A0540bB5)] = true;
WhitelistedAddresses[address(0xF0C15C42d12a66A64C18B7B3AAAbD301850c2B67)] = true;
WhitelistedAddresses[address(0x5C45599120E597770B8B78E0d619219c7721F2BD)] = true;
WhitelistedAddresses[address(0xf3e6639Ec6e0A22ad89351c92cF2C6f6bfd8c560)] = true;
WhitelistedAddresses[address(0x1DC8A1653EcdD65771112ED6a88854EfF47b6BEc)] = true;
WhitelistedAddresses[address(0x9af8b77Bb54c40142F195E28591a21199090F84a)] = true;
WhitelistedAddresses[address(0xf99f80f41822e5417B0e57F46de85509Eb5eA1Ce)] = true;
WhitelistedAddresses[address(0xF0835c9ae1D0BD0f783846692A8ceCd8991Ad28A)] = true;
WhitelistedAddresses[address(0x7Fb9B873f19C5ed62e5C1819478b09F1b09495c4)] = true;
WhitelistedAddresses[address(0x17E76bCAa747467021033992479D007175b5cc36)] = true;
WhitelistedAddresses[address(0x8694CE0e61cA9ec134b63A79630d329FB8A4e759)] = true;
WhitelistedAddresses[address(0x00E4Ae82316CDEd8103c64d9C6F083fD4393f35E)] = true;
WhitelistedAddresses[address(0x738C9f6618191dEb17078281469Ded0524072119)] = true;
WhitelistedAddresses[address(0xF4EbF1061d7Fb49D66F1c07c23D27a07234A8Eeb)] = true;
WhitelistedAddresses[address(0x9c5aB27aB9D8365819B47C504b549eC7664b4ccA)] = true;
WhitelistedAddresses[address(0xb0cacc76f031658438219d2EAa84B630A0879F83)] = true;
WhitelistedAddresses[address(0x14e0fD6B639F3d13cDd83d233F26e7369C38B847)] = true;
WhitelistedAddresses[address(0x6f9cFAccA63145c906fAE462433Aa1d1F147eec9)] = true;
WhitelistedAddresses[address(0xC1CFA03BbD30d3048e580edeE774B514d82B0750)] = true;
WhitelistedAddresses[address(0x1013604e012A917E33104Bb0c63Cc98E1b8D2bdc)] = true;
WhitelistedAddresses[address(0x11957F0758426b74eFFF2BDacd4e6d659509E367)] = true;
WhitelistedAddresses[address(0xAee33D473C68f9B4946020d79021416ff0587005)] = true;
WhitelistedAddresses[address(0x0788C6B29E4951C853f1BD0BB55B3a1471fC8ad7)] = true;
WhitelistedAddresses[address(0x7aC4a333E14a0d059aB8828fC309b7909fE61681)] = true;
WhitelistedAddresses[address(0x1c9D540818B79c5C366757eb591E688272D8953b)] = true;
WhitelistedAddresses[address(0x2007b11534986215fAd4e8e8f6FaD05D1f5aECCA)] = true;
WhitelistedAddresses[address(0xFc3859FC165E17a3f292d474b861A204888997C0)] = true;
WhitelistedAddresses[address(0xFF8448EB5fF167D137086Bc2c922da507eB5CbDD)] = true;
WhitelistedAddresses[address(0x1f37b88c0f7569D12ae233a3c63D4578A2e0aF66)] = true;
WhitelistedAddresses[address(0x238b7D3eBcD03f90b76197A945715b51C6687415)] = true;
WhitelistedAddresses[address(0x2Ab97866D53Adc3350Eb83B5bCF0f3011E4E4E6f)] = true;
WhitelistedAddresses[address(0xC32291Fd1Cd878E5edE51b9Ebe5bc130BCfB9A76)] = true;
WhitelistedAddresses[address(0x94cDb79f25C0E33d48F739925950a2D58313E193)] = true;
WhitelistedAddresses[address(0x71f23Eb967C34394c26948b7C5436021458bCdD7)] = true;
WhitelistedAddresses[address(0x7264a31d580bc78582344A0437EC1dbe42a84148)] = true;
WhitelistedAddresses[address(0x7615317643361B0Be9E3C1d64C223e773e0C7A20)] = true;
WhitelistedAddresses[address(0x559c85b59E0E37Af3cb7E215a46aaD5e941C6e65)] = true;
WhitelistedAddresses[address(0x15F7320adb990020956D29Edb6ba17f3D468001e)] = true;
WhitelistedAddresses[address(0x15FaBD08ae2c4C18a4018f9e3B1ADC54F844F95B)] = true;
WhitelistedAddresses[address(0x188028eA8B6B57BBD9C42f3E65EF2ccd42D9D033)] = true;
WhitelistedAddresses[address(0xb226dD18ea4f6B36a3463921EFA83e15524c25f1)] = true;
WhitelistedAddresses[address(0xB4498D64082326Ab009EcED9b8B64567B86E3a53)] = true;
WhitelistedAddresses[address(0x0A0006bb21B0CEB08BD974695E26B9C6510BB114)] = true;
WhitelistedAddresses[address(0xa7917aEcBB4126391aF1503a4a084ecE3D3aAa80)] = true;
WhitelistedAddresses[address(0xa7ea3B0F677262EA896b9040c258D2E7fF3ffC66)] = true;
WhitelistedAddresses[address(0x2901a7D681543B07E48dC64f0F513fB769B40E3c)] = true;
WhitelistedAddresses[address(0x04380BCa994CeEa8eC239eda3DdC70E4bc4487cF)] = true;
WhitelistedAddresses[address(0x3C02F24aF73d33B1749C62D9b201A629DAD93742)] = true;
WhitelistedAddresses[address(0x979261E0C07D40DC4C991304b2Ab0249FD31c979)] = true;
WhitelistedAddresses[address(0xe969Bf18fbC0Ed94fBeB0821d347d0525a2C880A)] = true;
WhitelistedAddresses[address(0x05823327Ce8B43f0950529C8488b5dF644E3c2ef)] = true;
WhitelistedAddresses[address(0x84096fE398298FDE57E15da5bcf7dB382abDE421)] = true;
WhitelistedAddresses[address(0x5616079eE92306558b7c70E3019dDc633645517c)] = true;
WhitelistedAddresses[address(0x3732C25003D413c054d85cbC6575c6B065BDb69A)] = true;
WhitelistedAddresses[address(0xD4d1773900E8365cAA14594E534A625cA9EFF8fF)] = true;
WhitelistedAddresses[address(0xE2C5EC986f7b48f70Fe4044B82294DC695260E54)] = true;
WhitelistedAddresses[address(0x87431Ebb78B12E9ea133eCC77705d4fB96f54441)] = true;
WhitelistedAddresses[address(0x8E9725B51832b671d3F43bDb5B4b75042fb6821f)] = true;
WhitelistedAddresses[address(0x39fe36cAfa28d84455f1A263621e95F91139F884)] = true;
WhitelistedAddresses[address(0x845911D40007DFB6Db4E5dB79b6C7A2F60ac1485)] = true;
WhitelistedAddresses[address(0xA50D8F5AAb636799e84c5a97d4C21492c52618eF)] = true;
WhitelistedAddresses[address(0x5334e05877093c4cC04Cf47Db9444fBC556FE60e)] = true;
WhitelistedAddresses[address(0x4764E2D1f34406CBfCBB91759103db97d8327E36)] = true;
WhitelistedAddresses[address(0x6Db1414BBf432054E33D367F4Cfc8617e8f46d55)] = true;
WhitelistedAddresses[address(0x9d7e32A6c87bA52F7fB34133935E70c3ec0e1cE4)] = true;
WhitelistedAddresses[address(0x60E95A5315961135Ce38f0f15178EeB60C1D4596)] = true;
WhitelistedAddresses[address(0x49c641b20e577666a67102EFb8D9e3e0258C5263)] = true;
WhitelistedAddresses[address(0xcda444de55ac909992f2213d0A1737D78236e167)] = true;
WhitelistedAddresses[address(0xe239b3d8eE1906eD368a548be0E0911B6cB3Ab72)] = true;
WhitelistedAddresses[address(0xeFd42F8d9090B6Fd4ec0dBC48DD031400546Ed5E)] = true;
WhitelistedAddresses[address(0xB30aa186524eE72711B9a75D8A6a3feA9A4D1f47)] = true;
WhitelistedAddresses[address(0xD77033a7F57EBbadfCe5ADf9Ab086BD4C4b6C509)] = true;
WhitelistedAddresses[address(0x6F1A18E399F8Da8B4019c24fbE755f0C96af61fB)] = true;
WhitelistedAddresses[address(0x25a915C43e2E9E5AA081f371A6679D01C011384a)] = true;
WhitelistedAddresses[address(0xb200663fbEAE3C28D898453Fb4Fd9898cF0Bcbd8)] = true;
WhitelistedAddresses[address(0x2330c220E5D722141ED1269f44173FC2D1d4703e)] = true;
WhitelistedAddresses[address(0x0806CA8FF8114dbeC2f3265a59b4E942Ce09E9b7)] = true;
WhitelistedAddresses[address(0xaA6c89F90078210ea92c4e449C00551F7254DCf6)] = true;
WhitelistedAddresses[address(0x0eAc6A5758b19890B21515Ccf49DC80Cb79211dc)] = true;
WhitelistedAddresses[address(0x4f960d763e2d153299F310432fD8e16F75cc9BCa)] = true;
WhitelistedAddresses[address(0xE3D0Ca354320c7D0B87722664cb4C4dd98C3eD03)] = true;
WhitelistedAddresses[address(0xb42D498c014Bd44A45aE0965a8C3E2E777fcf990)] = true;
WhitelistedAddresses[address(0xDb4bAC8afB4C52d9ef0DeAd2891d2D8CF6adB72b)] = true;
WhitelistedAddresses[address(0xdE1AAe3E605259ECfCe4f6165D70f161FEdCb721)] = true;
WhitelistedAddresses[address(0x6c8F7D53760B0c819686A99AF709815fb0FED0Ca)] = true;
WhitelistedAddresses[address(0x287D8A3db7a750a89DfFcB61792d0db91E3AD85f)] = true;
WhitelistedAddresses[address(0x299C0d67FF73FDd5148b8d5947D819962eC16Ed2)] = true;
WhitelistedAddresses[address(0x151FA4451121a83634aA70c9235C550E45EC1D58)] = true;
WhitelistedAddresses[address(0xb97Ce8F7fa5864505a06777117dCE2b87337dF30)] = true;
WhitelistedAddresses[address(0xd56180C5460cBC727B8dA09ec35713F5A04ab563)] = true;
WhitelistedAddresses[address(0x2d345bA5714F6F87a14E1d1F079c5De8Ea920F42)] = true;
WhitelistedAddresses[address(0xdBF4bAD6BF5450AFCAaAAd624834158fcCD4124e)] = true;
WhitelistedAddresses[address(0x09A942556dD4465Fd5B94bF39864B52CD0B36f8F)] = true;
WhitelistedAddresses[address(0x15a6C99A170EAf21A1d0D2a88979658AB75ae8e3)] = true;
WhitelistedAddresses[address(0x9B8118Da271Fb74b520A64bfC216D950496FB8D8)] = true;
WhitelistedAddresses[address(0x411479FEe0448D48308f617446D305845b556B6A)] = true;
WhitelistedAddresses[address(0xc886dB8b8CD260f5ee38Ba3d8f8E9324EE27EA33)] = true;
WhitelistedAddresses[address(0xdb9986bd0596B8a4873b09b4a10B81B13f2C9dDd)] = true;
WhitelistedAddresses[address(0xB0Fd1E07b71Dc879189229250C189e24Db7f6979)] = true;
WhitelistedAddresses[address(0x054Cf4271a865B61C34536B85c76de5DDb3508Db)] = true;
WhitelistedAddresses[address(0xbD8F35865F196c97161F913eFC8F2e365E29DBbd)] = true;
WhitelistedAddresses[address(0x3cE0276c0f9Ba62B4121287cA73898f068dfe775)] = true;
WhitelistedAddresses[address(0xDf0c58b78aa30F906f59599352B8Aa4f92520beb)] = true;
WhitelistedAddresses[address(0xb4383C2Ec9c28006D50e1c9954263C242177B932)] = true;
WhitelistedAddresses[address(0x41CeEa536dff094410420A66D4Ca6956a6850ceE)] = true;
WhitelistedAddresses[address(0x113FBce4BA8Ccf6dC98C79A40E8B02832d0F3258)] = true;
WhitelistedAddresses[address(0x217ACda0590147A9E1015Aab869d3962fc21515c)] = true;
WhitelistedAddresses[address(0xb0a5c14Bb5A7fb3d8591f57AA53423c9A9b1dCF6)] = true;
WhitelistedAddresses[address(0x56ab10C2B0507cB9447Ae7cd4cfC1f86DED8a348)] = true;
WhitelistedAddresses[address(0x7E86463e7C62c9EcA0CCdE14a06dAa4Eb4c689Bb)] = true;
WhitelistedAddresses[address(0xF9917f48EEE692142F72d1D87D919e622350a260)] = true;
WhitelistedAddresses[address(0xAF2965BDA9ca6A7148a20aaC46AbC722C8A06c3F)] = true;
WhitelistedAddresses[address(0x6930353Ff70baA600Fd241BfC64A99d9C1b9E25A)] = true;
WhitelistedAddresses[address(0xcD04d24128F52b08e1e7d71d3C46d1488fA1c66C)] = true;
WhitelistedAddresses[address(0xEd0BEBed0A940731C5A5eEF2fcf7b837BDFd4bE2)] = true;
WhitelistedAddresses[address(0xE2C986E423A6A1e77e865566A194851C95F57569)] = true;
WhitelistedAddresses[address(0x19e5D4BaE3A1A10A914C4E0c22D5ac247a338772)] = true;
WhitelistedAddresses[address(0x2a575E1547bB392DbE5A971Cbb9b05EA5DEc0d4f)] = true;
WhitelistedAddresses[address(0x234dBfc9739598aBCD38e2072047BF2568930692)] = true;
WhitelistedAddresses[address(0xADF6C68725918fab2E384e16bAf14F3dbB59258F)] = true;
WhitelistedAddresses[address(0xE597D8a65604b109510A6bdF3730E23d22e61482)] = true;
WhitelistedAddresses[address(0x39c6482dC57d33A6a30980aa31445348887380fB)] = true;
WhitelistedAddresses[address(0x59178464f84A514b66092A35d2d01401f561F49D)] = true;
WhitelistedAddresses[address(0xb7CA89cf6f7d21c6e898f57871351D0A951CFe70)] = true;
WhitelistedAddresses[address(0xdc5c500ffEc9C7753a535D1EB7C3E1209818E726)] = true;
WhitelistedAddresses[address(0xfFd4cb56191f80C80CA8Ba0C210ff39c01BA0226)] = true;
WhitelistedAddresses[address(0xcd464768906Cb1DF8C69594CA4A72ea7D5C98f9b)] = true;
WhitelistedAddresses[address(0x8bB79B61633A6614c25D823306FfC10993F41EC5)] = true;
WhitelistedAddresses[address(0x50f6866be52085478DD2c7fE9c04443448293e5E)] = true;
WhitelistedAddresses[address(0x25Dbb59402Ae4Fc9f047d5C0727a840EeD031208)] = true;
WhitelistedAddresses[address(0x538682d8A255d5DB6ed93D903D0C80D4e0c474B8)] = true;
WhitelistedAddresses[address(0x45909B8ACc1ace1Ba9910EA7023EEDa492ba058c)] = true;
WhitelistedAddresses[address(0x2F850E3d5668D88178E06Bf7b4224Fa1b125c4C3)] = true;
WhitelistedAddresses[address(0x22584aB547B0958Ce4363e6c47b93Da67AC1558a)] = true;
WhitelistedAddresses[address(0x375d48cD18D06C4B580741FcBA729129425Ba8ee)] = true;
WhitelistedAddresses[address(0x2245CE84f82D8d52DE1C4faF46c800077980834F)] = true;
WhitelistedAddresses[address(0x823C8Ad1E4F3906A4ac9c178a4FfE79385c2ce5e)] = true;
WhitelistedAddresses[address(0xB479bAdca9d5310ed0c04E3911436646e91FCd1F)] = true;
WhitelistedAddresses[address(0x093e94741A8F96Bf44Ec92d5F0E464B109242138)] = true;
WhitelistedAddresses[address(0x25f66cFC9b7954F658A551C93d29A4d40c65Ab22)] = true;
WhitelistedAddresses[address(0x30bb881A96213b4dcA453564E9eEca366F4dB4d4)] = true;
WhitelistedAddresses[address(0x27fE198859aC9b99BB36cFef99D94459dAd51Ad8)] = true;
WhitelistedAddresses[address(0x604C4365Ec2F35F01Df0470CC1d92248d6186A5B)] = true;
WhitelistedAddresses[address(0x78450D6179D8C564BfaF5Cf037e11404a43ab123)] = true;
WhitelistedAddresses[address(0xED0BB2Cdf15324954f7612F419d71ABA2542a13C)] = true;
WhitelistedAddresses[address(0x9D8bcaBD07139ce555cA6bDc574D9f42701f89A8)] = true;
WhitelistedAddresses[address(0x66791b6dDc1FB01782e27E2614Ae5Dd47C7773bA)] = true;
WhitelistedAddresses[address(0x05dCf2D321c894e1c53891B1A4A980f96DbA5F91)] = true;
}
function participate() public payable nonReentrant onlyWhitelisted presaleOnGoing {
uint256 weiAmount = msg.value;
address beneficiary = _msgSender();
require(ParticipatedAmount[beneficiary] + weiAmount >= minPurchase, "Min purchase amount not reached");
require(ParticipatedAmount[beneficiary] + weiAmount <= maxPurchase, "Amount exceeded max purchase");
require(address(this).balance + weiAmount <= maxCap, "Amount exceeded max cap");
TokenClaimed[beneficiary] = 0;
ParticipatedAmount[beneficiary] += weiAmount;
TokenBought[beneficiary] += weiAmount * rate / 1 ether;
}
function claimToken() public nonReentrant onlyWhitelisted {
require(block.timestamp > endTime, "Presale is not ended yet");
require(openRefund == false, "Presale is refunded");
address beneficiary = _msgSender();
require(TokenBought[beneficiary] > 0, "Not participated in presale");
uint256 tokens = 0;
for (uint8 i=0; i<11; i++) {
if (block.timestamp >= claimTimestamps[i]) tokens += claimPercentages[i] * TokenBought[beneficiary] / 100;
}
uint256 eligibleToClaim = tokens - TokenClaimed[beneficiary];
require(eligibleToClaim > 0, "No tokens to claim");
TokenClaimed[beneficiary] += eligibleToClaim;
// Transfer the tokens to the beneficiary
HORNY.safeTransfer(beneficiary, eligibleToClaim);
}
/// @dev allows a user to claim a refund if the presale did not reach the minimum cap.
function claimRefund() public {
address beneficiary = _msgSender();
require(openRefund == true, "Refund is not open");
require(ParticipatedAmount[beneficiary] > 0, "Invalid address");
require(RefundsClaimed[beneficiary] == false, "Refund already claimed");
RefundsClaimed[beneficiary] = true;
payable(beneficiary).transfer(ParticipatedAmount[beneficiary]);
}
/// @dev transfers tokens to the specified address.
function _deliverTokens(address beneficiary, uint256 tokenAmount) internal {
HORNY.transfer(beneficiary, tokenAmount);
}
/// @dev delivers tokens to the beneficiary after a purchase has been made.
function _processPurchase(address beneficiary, uint256 tokenAmount) internal {
_deliverTokens(beneficiary, tokenAmount);
}
receive() external payable {
participate();
}
function startRefund() public onlyOwner {
openRefund = true;
}
function withdrawETH() external onlyOwner {
require(address(this).balance > 0, "Contract has no ETH");
payable(DEV).transfer(address(this).balance);
}
/// @dev in case max cap not reached, withdraw to be burn
function withdrawHORNY() external onlyOwner {
require(HORNY.balanceOf(address(this)) > 0, "Contract has no HORNY");
HORNY.transfer(owner(), HORNY.balanceOf(address(this)));
}
function addToWhitelist(address[] memory _addresses) external onlyOwner {
for (uint256 i = 0; i < _addresses.length; i++) {
WhitelistedAddresses[_addresses[i]] = true;
}
}
function removeFromWhitelist(address[] memory _addresses) external onlyOwner {
for (uint256 i = 0; i < _addresses.length; i++) {
WhitelistedAddresses[_addresses[i]] = false;
}
}
function updatePresaleTime(uint256 _startTime, uint256 _endTime) public onlyOwner {
require(endTime > startTime, "close time must be greater than open time");
startTime = _startTime;
endTime = _endTime;
}
/// @dev token balance
function tokensAvailable() public view returns (uint256) {
return HORNY.balanceOf(address(this));
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}// 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;
}
}// 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.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
// On the first call to nonReentrant, _notEntered will be true
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
_;
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
}// 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);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
require(!paused(), "Pausable: paused");
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
require(paused(), "Pausable: not paused");
_;
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the subtraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[],"name":"DEV","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HORNY","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ParticipatedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"RefundsClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"TokenBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"TokenClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"WhitelistedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openRefund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"participate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"}],"name":"updatePresaleTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawHORNY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
600380546001600160a01b031916733d939f3aab9af971a9eda1bc63a768d0df386f661790556b1063d7fbdb2187d99f6000006004556803bd913e6c1df4000060059081556364625700600655636463a88060075566f52322698080006008556704fefa17b72400006009556101e06040526032608090815260a082905260c082905260e08290526101008290526101208290526101408290526101608290526101808290526101a08290526101c091909152620000c290600f90600b62007ece565b506040805161016081018252636463a8808152636464fa0060208201526364664b80918101919091526364679d006060820152636468ee80608082015263646a400060a082015263646b918060c082015263646ce30060e082015263646e348061010082015263646f8600610120820152636470d7806101408201526200014e90601090600b62007f68565b506012805460ff191690553480156200016657600080fd5b50620001723362007e7e565b6000805460ff60a01b191681556001808055600280546001600160a01b03191633179055600e60208190527f439788d5909c32c85e222b6fae0ec001c07daf898ba4b50a8da2a78d7bb397fb805460ff1990811684179091557faceb15f684738229229f452e517305154614a8f95dd9c2ea45eff915831dba9780548216841790557f88e445849b0eb0f99ecdc808b9b4a7a1f49ba537788956d02bc345e05f885c9f80548216841790557f7e08e4d2c08f42d423f4a24471ba69b8d58a86ea8918be73ea868208ff2cbf6980548216841790557fc15a8c384891a5c229a926beb3af15e692c17841b2182c267288f4c462f4e42780548216841790557f427f9d07af1cb7a3bcdb673964d91aedf1d3d717a75fcf2c59cee0ed8114f1cd80548216841790557f874039c88bde64de57907e7bd1e608f33ff056349e928a949b0a7b1c9c079fd080548216841790557f3619d5bcfb2ba52733bcacf95cc6f028318a18ddcdd162e41ad088bfc919d66680548216841790557f591baaab4e4b38ed79d5353ffeb0eef9f70a5f5835d05528b637a5dfa5efefff80548216841790557faf280d499687a17f832ab68f5573d75f5541ea94efcb8af7f84aa871d207d10e80548216841790557fb3bf24bdc60abeb5db41c150582327be0405b11a1fc4f2ca0b389be101831f3480548216841790557f3474942828cd84f5981a952ecc4d954709c468782dcf498ae5e7f19cedaff94b80548216841790557f47debd73e1757c384d8a5c7e06f01c7fd686f609644351d5661e25bbe1246ced80548216841790557fbcb168f284655f7dee241c59ffc5994c60cf6c4585baa359852b00ab10daa6de80548216841790557f61bae100b163036f91dee1a40bf3cb73cbaa77a77184421a3a5c030aebe044a580548216841790557f7f28e0dbe8c6099a34c92a999f03ee7e78cc96246b5e216b090dd8c7f5db066580548216841790557f90d0da243fe8d75c125a6099d9488ec42da1a49953a3d63d58b7ca15b79c617380548216841790557fdf0a45a222ab80353a6a3c4aae4e3ba9b75365433dd4c066a9a8649e8224ee3080548216841790557f427801a071ee21c566989bb10026cef77d4ad14db8f8addf1399e5a2291eb91580548216841790557f359153e02414aa8d02148317a60870d29413173670c8948c14495d692f51ce5380548216841790557f3de5f6a8a45a163c4b6e42c66ff0dcb3043333f41f470d95b6e0b67adc07b44f80548216841790557fdd40409f8e9a7febc210434598fb011bf5e8822681a6b6956f39f428fc0b503280548216841790557f79ce6ffc58d4b9c4858afeb0845cbf427a97a2d44f0ba9d2ebe7051793536d5b80548216841790557f735b805587a23738ef5f4c21cbe6a6172d5548c818d2bbc58786f9beb704de2a80548216841790557f1ac0104007a90cd9fa4b2c3eeff8cf915ff51c0d81c6bd12dd05a26e890a2c9380548216841790557f93ec3489e4ee2f3ff48474712412e357ea696cc9e98ae1d37600bf5aaa2ec81780548216841790557fba04b38f9e48407effbdd570e8440b730c1cf4f3715ea47300abd3819c4fc3ef80548216841790557fd20f8899acf00fde21792f25b6f827e90b3e4217a59cc6e9220c4b6c6a0e5ac980548216841790557f50cd8143eb49ebb78c54f519557caf21df3b94a3f588b84ac5c3de84f019b8a980548216841790557f2d1f665775dca1229fa64504884a4eda2ecb1ab7721650b9076c7bc0b3fb646980548216841790557f9fc1e1661af0da84fb63c8a50d6453adc6d9de188f9e5b1331797e88eb7aa12a80548216841790557f72d9911f290a2ad14c96f18a74fe32b558439b091235a008f0803c0496be6cde80548216841790557f1d6238db014ccdb9663d652ebf7e5c212d13cc3f9688f939bb4c844d0239fda780548216841790557f1657a6694d58a99bcd9bec2d1a317214a9b9f749dae79299b6b62b0c4032053680548216841790557fa13e7fc8b0fa2eed3b9877534560a26234c4af9a3843f2069d58d4941c99e05480548216841790557fb1bd05704603d96ecc2f8ddf1a631c12932b1f21f82ee558dd8749f73d9802df80548216841790557fa8d3369071ed931d486e67f698035dd757da16e5743cfe816104a01d73114a2580548216841790557fe8636846c9714d26dbe72e4fc8bee0bff00bf34147efd5efeb09328f577ede0980548216841790557ff55f117993f6f3101dfc0fc4babae4d10e3fa7c6a633b21c4268c3aee721b9c780548216841790557f6475e19f370d0c3885d3b5c26546d745bc664c76ef6db8a4c660eb92a1d179e380548216841790557f9bc2d1de83536e0639aa3269370969cad952ec01a965906beabc7373d4b75a0b80548216841790557f8df8b0de8d9e0e213520412b638f5e4d6e737b85bf1c56aac5775b382485a6be80548216841790557feb9aab7e680ea9625918d87d51a9f6524dce15742a4e88636a00c9352404b25880548216841790557f7e18cb7a8b580eecba476ad995d8a9d4b1c836c48b0785e13724e614b0dbc03a80548216841790557fae278558445ea3f135bb24333e7fa6610630bc8e4cda7eb3515c024e01a9801d80548216841790557f8d75b9ca870a8782efe70581b89d1048bb2457f2408bb3f616c9520fd7c6d7c580548216841790557f2bc779ffafd5d13e763070a017a81429cf1f9fe2fc0c573a44e684029480561980548216841790557f13ca2b610c35ccf72333cf8db5590909300590fd2bec62ee37822e7606ed00ea80548216841790557f9a8bfcb100617a104d21f8a6eb851426b0bd522b9af6f3de7244274a75b3112980548216841790557fc102691222f5892cace36f3aef23ede844408c017eacaa9b101b9ca2b452a41980548216841790557f19a1db2bae04eb744d4350cd8c925e3772c78f06ad2e0344ce92a18a4109fff380548216841790557faff32222b851510187c91a789516479e3da08da342d76a944c8e0acab0b2e92c80548216841790557f36ddd2e80f1bd5701e44156d883b369622a90aa9929006c7c625c57594cdbf1580548216841790557f2d00adb01495b493077529fd8b4e6d9d3de5f82da58a433570c29d27d95bddc680548216841790557f2451c4f7fa84b3524256d4bd01ef7b77d747fe1144af3abb99add0fb8b69763480548216841790557f6c348509805fa8d9add393402e79e60db990fb782c0469a48b76d10e05a7ed6080548216841790557fd55bcb6f30aacd510c17f5a6e1bf9f4eda833d253fa89a94ef0515f02441863c80548216841790557fe6aee6472091e6ff7cb16e477d1481a8f5a1537583b79375c2d4ff49638fc47d80548216841790557f535bf14a560e2fe4ff270e4ffe720f226107bc113303049bcfe51d6de3307d0980548216841790557f2d7c101653821c628c63066e635610cd806574821a70113dba62a0a1deff966e80548216841790557f891a00d07d3a7ec7978c5df9b3aae706b4cf7fad38a1b05c26c2707ec369719280548216841790557fc9abf4af61f9d50295db5a593903a314a39c87390d0918468449f547fd6c028a80548216841790557fc045cdf8dcfbf7428750752e0a8ad062a1c5e746f3adf2e4b61cc7cd22652ea380548216841790557ff32fb9c594ad90bff342d96f9304593ad928d244b2b3becaf9fdce52e91cde1b80548216841790557f1ba4d68a4e21701997425736cdea110502a25cce6033091a6290c132a211b8fb80548216841790557febc3bbef7a180da3a8f872c5c6ff1c071526267affd7086f7fe4a7e0ac6989f580548216841790557f39507d81255804ae53e9b9825c9fa352f0aaf49fbf5d272d38eef21c3f7b4ca880548216841790557f9a3b68a4a8ec0e1cb94d0a4106e87c61f8df478eecf1751ef38164bcbd32db1a80548216841790557f1a223520a9114b2ffaf17d0e4fbc3be928de0eecb766c0e1c2957186482c08ca80548216841790557fe00d3369e9fffe22c1a0991522f4babc6ca1ce5b804a105ed90958dfce96ba3b80548216841790557f824bb3995c619d36762d03570628d5b0916b2c514d91cc0de23bba8e8a80441b80548216841790557f20e53075329917853a402ba178502f72183db51f58f9eacc287c14044979e0a380548216841790557fff5bcfeceebdac005e275e4122c397b88d2f8e9f4bbda85cf170c3300bf617e680548216841790557f444908b382e3b43e60c8c7f90151bd943822341d2844a8ca3708bae33958919f80548216841790557f55a54c03193eb2c56ac81d6b46bfa6341d8c5221d7da7f8aaa3e7f818904b4df80548216841790557fb3e57675a4bc662b12465f9ae1b11fb5fb0256a6023dd05c48009d846b32041f80548216841790557f4d17d5e510e4da7622d6c8c225b81c1fed0ef5d49696821d15788807acfff10980548216841790557f8b514176f00575a2baad55e36370a07391a29ff4c53e1e5d1e4ee59825107c6080548216841790557f103c171801326f588f40a86e40bf4bbfbc438537d5ca2f67e034815d6ef2b8fd80548216841790557f446cccc85f7cd2137d7727831e71fe84b04847e15b1300813dde16ed187eb61480548216841790557fbaf8c4c7dde1cf0a48075ffb62e79a21a1e4e19264926aafad818c4346977a7f80548216841790557feca3c4e6b1d9afbc3975616ea9a67dcf577453e5c3beb65214266fe58f77427480548216841790557f25b29a3136216b50688c7692f769e9c156ad7bb66fa13f437d2a3a8a49f7004980548216841790557fe7141e1d243bc6f1e5c6cdf4a04bb120a1c7bc0a4e1fe19b7c1fd82dc91df8fc80548216841790557fd89dce16ca7d29837783f1dd04beb661b11e25395f61a58ff1ae451ef1c1ec1a80548216841790557f883c9442c8fb34b46755266476c1a87eb09fc6dc353f2164732e092ffde1162a80548216841790557fa2d42cc3bafea088a1df872a57e6122e1206b050bb0fd1f2d053df1b53d17d1580548216841790557fb9c189f2f7c3dc5c8ef1287aa1934e856a8f7c028c1012e42971678e9ca787a880548216841790557fe8dc23659eef1b0e4592c8139ade87b7d93eb0011d670f8b36c6a777ed0456b080548216841790557fee34c176f4e259351a88ba72c2e2751b5e50d422ab6a396f913e658adaec1de980548216841790557f5bd75c861669bda0035340aefb15a74fea15fe857df043ab411acd5b4f755cf580548216841790557fdef8ad035154f7106e24fd2f31d509fa57866e0c6503f78994500140d0a864d180548216841790557fb268c4628e1bbe3db24dc37b97bd1acb47a1a6bc3a36795353baf5461d5f9d6a80548216841790557fab3e8536be69f27e9964d2cca912eb591abc600523f5d2a0efc77059288c458280548216841790557f1f8390812d7c08ff171ba6fbb2c42b3390dabcb293dd5553e0f32ac5542a66b780548216841790557f5887db5c7ac9922c7cc2973413879346019f9f7643836947b052791c2c3aa60580548216841790557f11011f99453ef7ec507b7b553410c1b0b0919cac830225a219c705098632958680548216841790557fb9c76ea6b37f90189efeaea34f47795e23ff5024349807c7bc6952f60a8ee76d80548216841790557f464c8d642312b82a1d7f470858419ba458769392a8c241dd83aefa17d3601c3280548216841790557f36c22c51c57b764e4b6b3802f7ccc519f8aa182ce9205d8d80e5322b0a194c9680548216841790557fe3f6e7813584a7e9208ac3b52d623f52e39e97931c7861f6447edd26840776c180548216841790557f558d8169f26cc0a7b1c505456e787c16aa52a88c0e0e85d03c3b9fc8c34e0bc980548216841790557ff99cd5e609e81b2525552cc7c28cf34ce32632a76093e4290a6e9694242d970680548216841790557fd4b4ea888e036dcc499fd41719f6ad8e1597a42aa4d769acde36cb82bcf7d60a80548216841790557f194a502f6be4ef67df45a0b0066338cef33eec7c42d91c574826ec607c53387180548216841790557fa861c37d8603467e4967d0d84d87c652c39dab2f39fa5d7aa805f119d48e260e80548216841790557f28d4be081587ba2e5e2af7c74e81fa379e7adb9fd76cf853b2e152ffbc62ecec80548216841790557f27a6d35bff4ef53efe0a0dac5c4883286c9c6d0babd30b7c2973d33e7e7f7ca780548216841790557f91d0e7a7b56e0c95d6d315cb9ada516840cb514c1e164b0a016b23735f0c719080548216841790557f4f14a675172657a5f8d778198389dc02e4cfbba56fc68036efe5a3c151a9ebf280548216841790557f6e254eea555b171e1e4bb3a62e1d340422dabaa3f39aef5ca3373ec563e58f1880548216841790557f20e8ee702119d142b47f5231135035148ff523dcb85b921d6926205c72e120e880548216841790557f705cf6f861ca8ee6bc982e7d47294f7836389ea5109635e5df2b629bddb3228a80548216841790557f62bd57746d0ba17c7c3ae0a3fd0cda32af4477edc33bcf2d4df3c0e5419cdb2b80548216841790557f450db11db6822b55cd893ddc309a5b0502e7c9a7aa9c3616d843d60dbadef6c480548216841790557f03bd250b4ec55aa6f624ca761439f81fe5c9ae55cb1190a27c2744c48cf6abb380548216841790557f93f1658dca3a45245ad1fa0ef3adac33e30cbd9b985bbcd3fa642d574b985f1580548216841790557fd609d6b6fc0ed27f44716bf824b084b92e2babf0d343293178b7cd984c7ccbc580548216841790557f94769cbefe48d40b22462da2da90d648ec6a156ecd74b7e45665e73a63c79dbc80548216841790557facbc31a644cb4bf180eb34245d45bd73b03527626d968be0bf6746af0f92716c80548216841790557fb802867ae5d68a64c7519d80db1d3a3332327109b4abe165a86e1334c24f408b80548216841790557fb8da23e441d507e20c3b53d76cd6219aa32e0a2fe61dfdbe2ba1c8dcf78d17ce80548216841790557f6a2cdffcb253dfb0a96b5f79e62f394d9aad5b0b1938404f01a66c15ed8e0cc280548216841790557f8aaaa163194025545c91845cd75bbfa7d3da9d97785fab298b10fd48e708f7e180548216841790557fb3817a15740d21f0f63bf21c96c17758224088c44d4f4c871bf1e053b84cfb8680548216841790557f065ffd89f8eead3334710071d224f26fdb69d62bcf43c403e65b1d1c450481c780548216841790557f4260fb873fc7b0951c72bb0315b21ca0da81ce7783420ec957a80aa6559b495b80548216841790557f05f8c11761f1e5e3b00b7c82ae6e46cae53b854b533f5e3fff727fbe229ce59380548216841790557f9ae3037b2501267e04760b672aa5727ac4eb5c74d7523f7eed0981530d16d0f580548216841790557fe0f2f5f1abf68d1b207af7e4c43d434cbc81af4c7fa2f14db57e0cd5b894d2fc80548216841790557edaef21533475630c38c08448e4e2cfcd24f8c8986a5e223c11da42c65c44fd80548216841790557f15efdc57670526b4d81be1b8845a2d6f2c26bf4620ee3c5128c4ae172035f08680548216841790557f5eea7c5e59370976d854503547e67a4e3cb7e812f455a0fe849e62bfd9dc1a2780548216841790557fdd620a7c0e7b13705779c95397c9ad65756239184ccd995542a7d163c149a31880548216841790557fd323a422c449bcaafe189aae48e8695d460ca74f5c9bd82446da20938e87b82580548216841790557f44874ddb3034d6e0073231786f9597f42296e48572ed0aa67d3b502f07169bc380548216841790557fc7e4d2fcb32daa8349e81d1d26cc19c0a2a00af99405f006e4ef56fda402683680548216841790557f3718e38a2ab3db0961649136e1b33646713721f60afa56790e45b25c07de7bb180548216841790557fb45b76eed96449ab1032bd8cb10902f827a7369f93bd739ab4f41db629d3e01380548216841790557f3b49580b28afc2140b560f73ef44560030cc0730f553ea47e8f2697abb3475a380548216841790557f23816f8aa0b55be51ec14b6f58bd0359f2dad9e174cf428db8fd008eebf8509980548216841790557f4e2e2fc831b8aa3b2b0f564c7cd8fb17595e879d8660a7ea007277df0ca7740a80548216841790557f985d15cc6c58a0d6d4710a06e4579e370456fadc420eb9ca67557bad1e8969a780548216841790557fcfa25c4979d7c958c7f2a13548d2530b49f31dd658e71301f2cb70f6360c937380548216841790557f5c3ed06f041012ce87b2316145761ecdd6dc93899f83995f5aa1a99efec676a080548216841790557f10ffe555ae8e78ff1e403acfa00c0cfcdf43abb0cf62921f08e087916c24c55f80548216841790557f7ed01bd1ce5aa6672267d43694d156aa5a9101c4e5bdb413b6e0d39ddf83d75280548216841790557f934e0925c115809d7df218eef9ae96a2e4a6feb834d97eb238a5732cb79564cf80548216841790557f9518f3adbafd12911c1266de1472a0a74cad8ca228b55bdf5df92fdba051f7e680548216841790557ff2f63f9884d521436c7e54c795832ba67c4efe95eb26476b122f516c1a47e61880548216841790557f35e3f79ba3e15e575e9755be774c18eb729e43e4976bf125b3c21761f97e5ca980548216841790557fe467b012d63c282f4ecdc7d42da213e3ee59d77e5073b84a27ab25bbfaab451280548216841790557fccdc2a6751975bcf6170ab6d05724acf7e23781e29b1d51455270b2dfbd9611c80548216841790557f99e27e7aea058fd2bf0cf0cfd18950f201d7886cb0d1d6ed17c3dd2045ecad3c80548216841790557f905b1d758ce545d1cd23f37f6abd0e902e39fed96368bafff46be03755a7473e80548216841790557fea7fe19d9212e4f8130dab511f4e7c76c4dd9c1b8c70e854d4801c2cfb3db10980548216841790557fb967341e06ea9ee54c15e7c22146d603ce4996544aac919ed6815b4274aca56580548216841790557ff57840253d6e86fafd1ea2d85cdec141d347fd2ffd0d24b7766c7894d74b0f9f80548216841790557fab77ec18aa9cca9e264a6880975e7a21a67325d864950484eec08a72aaf3561680548216841790557fb9fbb4e7dcc1d92bf3e8adca0fad631d00b2e2d10dfbcaf6674abab79439db9980548216841790557faf9461759c3cd38e0610ee2a997adca882e6da7c78845d30e00267171d469d3b80548216841790557ff7a3bfec99d5497b8a891ad31c815d1e28168b099655666ee2aa208ec140e71980548216841790557f19f3c378330de77868d774dda053e0b4a62d10194413a92e3ed411a553ceb38380548216841790557f8620043e94a9a77d4f34fc202a8780d07286e622390e54a2859cb1f8659e908f80548216841790557fc7c2098138f3177e2d1173d59ecaad187dcdb21d2be1af6ccd1f5253cbde251380548216841790557ff691e6ccb930a98a50d6a9ae9ff627ac1e2521c2d7d8448bb5f71a71f39572ee80548216841790557f7611cb98e5ce1bda038b7de4b25de5dc208871c7a33692f7039940f72dd9a3dc80548216841790557f0393fcaad8b068f336ff5bb0f94a480ba63dc9c03b0969c3c3c32d8bbbae2f1e80548216841790557f98334f391f94c3ebf8bdbbd6cbf007dca09e6d123d78c08022c77447bebbc51f80548216841790557ffd8bb86442c5597783a371480981e2d33b45463ec8ef0d2f745accc75ee5f48e80548216841790557f2d5cccfbe45d0b98bae7cae72020a1b1ce74875172a6764ff2b00e29c0512dcf80548216841790557f25462e3898c7ac9202c1621a617ec375546221aaed12a9770b6b000be7e34ff280548216841790557f457700b5f4effd9e78d6afbf6a586ce119283e87a317f963438c9a55825ae5c380548216841790557ffc74dd0667a51e67a75c10a5b849c88ea5afdceec2cada6a2c4d725c6967e57a80548216841790557fcf101371e8c54999317b5e16f19844d2958a44aa2bc33d950e666a51617f6bb280548216841790557faf231024ecee78c759091ed52e2c2bb765305a333540d41d4460070bcad6882180548216841790557f60ce3f7332a72b4fecac297b28c9114d47788edf49355c4a64cc0dbd492e8c4a80548216841790557f86da9efe865948e5794df4756435213d022228f263fd3ddd587b9664dec4244480548216841790557fb8f461b2a17f4e4c82060dd66edfdf49a7300652c5e4a76cc1bdb6e17e59814680548216841790557f85400f701db9496d91a453e31f417689f6342256eb4a132da6958fd63c3c215e80548216841790557fc8b20e84c2c3087f32d3ee375db1eca04190181e0e64870f5a9fc2116e2cb97380548216841790557f5287c9fcca089dbd6b079412ceb72a22278a63e4d64804b0fd578cfc04b60f0780548216841790557ff670e6d82f5b3f7a3fee99701d79b4e4707c61a7f9ab7ea1cbd69f83a3e6a7bc80548216841790557fcc5912e5e2d189b9051d93c5a66e1383895a8938454dba490bad2a1cd848a7cc80548216841790557f948117ccdbea85b315033a33a4854a961bf1090d633ebe884355f1e3abd4c79d80548216841790557f1ef56ca0f7afc0180325729428f0f63a1804191010076e163d6b36f7b2aeb46b80548216841790557f622bb18421035bfa4d46fe06e053bf8ac3f193bb73fbd6a360f669da353b13c280548216841790557fffbef47362a11eca93f4f718f3551a12adcb9f387e63ea7c9d80435ec59b4a0980548216841790557f9a1432acf288bf85042437fedb07bb15f94da1fcd3a1d7b291fa00a34f1ec60080548216841790557fdfa7aee0649743741e42a3a2bf1e3e1589247d0420fb86aae6599e6688b6c4d380548216841790557fcd10f02711eb6c37eca30e020987a7f11d14bba56fcee3712df35ccc52c890cc80548216841790557f204f795d5da5568b262564c84918b1cd13f5a7f84f8a6cea8a72e1605f03d77f80548216841790557f5a296df1d9d0ce37ff76259aab0eec3e446e15ba17ccc19e00faa5772d1fdbd080548216841790557fc11cac67dcd0f354d2f543acd62b9b80b3a4fed899e9613ba7752df1d49b6f7580548216841790557f85a2ee45ca5124558e62d074395708750ff42f823e68607368eff15227dd53b880548216841790557f46444383f7dc1f1624c2e79e86432a50d7ad768255db8be2fe178f9e29f1a2c980548216841790557fdf1497080ee21374deb9398a3b81d775652d07fa9533226804e5e8806f91537980548216841790557f602c174ae0857132471a66088f83845a2c4b60c6c12ccd262fe676c1ba709dbb80548216841790557f44516bdfd821de7955ca5a74329d1c9e67f6c9e4e74fe1172797861018220b3580548216841790557f3819ec0ec2492b1abdaa9863fb2a058d2227dd2f05cd8b168d11d23f5da47dcc80548216841790557f08902cc60460620474e0a3b119ebc2d5a41388ee890d9030e1e13969460ad38780548216841790557f86a2e52efe484341cb63e8ead14999eca862940588ac23deb6afb46f35d4f8aa80548216841790557f4d5e8ca33f7313a577653d05a2fea934ebbaa7e42be49131fd0143909225859580548216841790557f6102c56ad7c51afedf8b9dd99675d7193be6018b1788b9ebe9928f357e0423ae80548216841790557f22b76fb6866ed0c0111876807cc0a8542764da06d22b7690f6c9b1c0a2774d9280548216841790557fc90602be4013cc8e6b7b3979928c3a6ff82098804770816915e90319f11beba680548216841790557f8d976af5748054e892dc335a2eea45c8feafc1e8aa38848d94c335559f53aabb80548216841790557fc1d5949f0e8652dec394f0fa0e191c30bff801baa5ee951b96ac0b85a7a5ceb680548216841790557fa9937174300970105fca864d3e5f56f73f07dff87f2e2f0cf31de88a0871334f805482168417905573de6c87bc55f0a9b2dbae133bf97aa9eff5030e1384527f6ce87a4353a873cba3fad975a8c3237862b1b7149ee74278e9e9738238f99b2f80548216841790557ff6829af6e88b5799cd1332c0b885847307ee813bcf6a0a6e8f49c7a71b7ed4da80548216841790557fbd8204ccc42fb145edd9ed5e99852aad82344697ee2382a533054e044335bfae80548216841790557f909b6be5d719f615d724af013c8b087082b65bccb2c0303a4283b167e53708ce80548216841790557f2c5112cef12696c99e551275d4059c1ae96814b434a6abc2d99a7db4295c074680548216841790557fe6ac7fe10e0fc713aca4b5c62f0f02bd3feec585bea416c49c6327d046a5ed3f80548216841790557f954565283ce2eaa5b9778bd2a48ecd153bffd53c6199ad1b61622142e0e914af80548216841790557f3a1b1cd364ba4938c81f5bcbb6b56240ad19b85c6eb3cc071a95ff45afd52bce805491949293918516821790557f9c6af53ea617aa26db84e967e80315815e70971c2f1d696b2166c8426c184c2780548516821790557f90e08d18d4310dfb1102df20bfa097e2bdcc63c6cd07c7ba24988df771ee009080548516821790557fca94f36b954cfe8874df61f412f75a1f6437a50089e46c1b265142f7cfb088f780548516821790557f5e3ccd4a508b97136ecc9d661b03cccaee06a1f612ce2251134ca1edc529fe6680548516821790557faa8190ee37ac282ffd30eb40d3887154ee074976c527cff97740c1d2cf33788480548516821790557f3993a20f956beeedcca8f211ed37510a8bed649d8e55ba9f363c2cea43b45dfb80548516821790557ffceb924fae732f07749a3066acf0f48067428a47e36df454e6c6ea9715c759fc80548516821790557f876e7ee2ae52f3db018058562eaf7e1a7c307e8a58025410e79cccb55b596a7080548516821790557ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80548516821790557fbd4711da7bbb54d725cad2b9bfb17a6c49ccfb436f84ef7d11c87ddb8a53029380548516821790557f781dfb5d9160d56a9437223383b99da69898e00db0f3bb8f9afae937ad22716f80548516821790557f6dfb83afb60e269afa2fb42e1f98f189b72d91b4376ca2086302050e7d3d02b680548516821790557fb0d24ce8421308bb0c05dec050410b58b8423b13aefabc6b9533ed437221594480548516821790557fdc0c4031acbdc0a8c10006d81057543780c3d5989e9fa2a244afd3f0e2d5207980548516821790557f17d10de28db7a3a803d203a68f9ca4ec145660b66aa198c65cc07a7664359b6180548516821790557fb1a4eaa5bd7d0e76bb0f56ac85e775af529571721698f1c5a0626674648a9e4180548516821790557fc43c9e799428013ee4ba83d6789d8ef53b88812fc155b47d1a273496f5c461e580548516821790557f346840297a94288ea8fb52284000dbadad0082729380f8d2071d1981fc07c5c580548516821790557fcc16357eb9e1d213398ceb8365ac40dee7554ffb86ba325ba2e6c0d3bc397be280548516821790557f92edfb87af289b73aca1356967ca0d41a3801626d8ae5f105288710d6c34c5d680548516821790557fac5d48925aced56f7a8057e3da930d947e31d7474c2282fd8a64e46523e7e84280548516821790557fa46939bf548cf51fddabd0f11ff065af79305b29180dfdc20442f5f5c50d833f80548516821790557f19b52832eca06c83fc097c1bff4534ec3f482d15f8a6e4f605bb16508252b2ae80548516821790557ff952c8621dd1b839d67997384f6847c590fc8a77b01f42f9feaa375ae52a08cd80548516821790557f021f3058336dc949bfad7672a3a5468e85b881a4a07036939821ad853e5c2d1680548516821790557f5ce569670a107dfc5ee484d3c81e9915b31d7391bfa41bc0853d4208e7ce481c80548516821790557f3e40b3fcff89fcc184940433c6606814d2e5eb505892d34a373b04907b6a66f480548516821790557f1af4a648486393d69ecfe3b565ba46fddc15dea2fdfc6a72cc8b1a515e20ebb980548516821790557ff7cdd84fb9a8dbc349e5cc69bdb972172c9ae45f5ac74880e2794716017e4c7080548516821790557f0b5bf90a2f92d21c1772d3e1356db69569948003f40f8357a59f258f8ce1a40780548516821790557fe071da2aab517f012d2384c31fd1a9f19cfc829bbdc30a1d8e65cd17ec887fc380548516821790557f7ed461c92e4ab6dbf0ed367f6df7cfc05f530acf2094ffd95d9135786a9812e480548516821790557fca507ff5f26ea8e3e91ab8507fd93456ab561942adf953c328d3224739c9f22880548516821790557f7f048b05d940cb7f4cb8a8329e53c118dd98f261e5687748babf83e7e460beca80548516821790557f19f751c051c8c2b783cf9b0a1440445c17c967ee76dd0c78a697be995f596ce780548516821790557f7ac8c8de387fc72db28b0daeeeb484019aff1fdb4bc6ea1fc43d45cc3177ca8880548516821790557f69e83e72ef47ffbd5ca72c7575d8ab0ac69a344a8d6143d1255999e2a03ffc2780548516821790557fe4c2f33751f294e7471c46082ee63172a7da58873c3d0dbafa2ed864de359e6980548516821790557f0559cccaae981b73947b0352efbdfe5e67ce8a1ea6390bd2ee89a5c0f877dfb980548516821790557f894fc175fc59130bc330f375cccd9c0474d61a1a4c356dd71a3e03b4224b017c80548516821790557faae1526526f08ba8f90d5f2ee0a27053016f6db9a13132380bd9776e8591162f80548516821790557f4852fbf943e6341accfa59b88ea878f8d9aa5729b95de167c6ef4f69930fcd2c80548516821790557f2d14831ef0497141296be31e3002963929b8c39b26fd0f8d4c44fb229943491680548516821790557f57b56073bd3e0972bda150d457a6145a3372bca8a2c3d1eda019607926f1b64c805485168217905573d50226a48780d82a8537e8feb1ec554cd6869be59091527fdb52928ab1a82a54218d5fb1bb1e55aef8a307655a806ac16f452032327d9c8180548416821790557f1d5755fdc7fbe375ec819e3ce92404cdeb3b2d793681cba849779b1aea15af8180548416821790557f8c4baee20b0801d3049fe77eb8e29a1684d3e912f77467b12655988872587eaf80548416821790557f31c6ea6c38b22f69bd9d4914b37f25facf3043bc477ba9bfe9f9ae608626ee2480548416821790557f94bd1c539ba05d6873e48280fd0ad91830dbf5c0c12d816c9f1b13c5d387663c80548416821790557f1b25da790a749daddd40ab7115885b95b34c6db6f1a1ec3b08c469ee777c08a180548416821790557f1976bd873543afb20707a76f17e31e66b88fa3ce510f3645d2cc640fbfc1252d80548416821790557ff289b56ccbb4dab6918d972b4a6f872e1bada86b6f3dff04c95e73121cbcad7a80548416821790557f36eab6ba684c79e4a6e461c66657b70afd8347d17bcb7f391149ce16d77fca6b80548416821790557fb01437044f4e8e29d9be84dd517ba185d86b5dbc586627fceacda4785874555980548416821790557f1d35886a3fccb195a52b438c4d86224651a5fdbb8260d8231529286efdb9bb6580548416821790557fd33020e3e73c4f63c9106e9a4bcdd2af40d4698cb4b60f32766f6af9537855e580548416821790557f9013893b2cef6d782d5806f3710c36f749519d3fec4268a0d40f807b9699798a80548416821790557fdcd89aafd433a76bd0b0aaa043e01c41e50e02cc9cf20972bb0946fd3bf3a4f680548416821790557f29579cc90d2eeca62fdf3936c125e3754f2406ba803702eceae113d0a66406c680548416821790557f9d336ecd85e56548928ca71b51715e955fbd89af1ea21818e6a809c4a82972cc80548416821790557f95cd1f7684d3da4d3ded305610e38a196b742a2a3ed811d4fd1aa735a066b51e80548416821790557f8fd1d04b2471a587bda15cd033b447c99b6d9956fda57c1588081f8cdc96097f80548416821790557fe83d6233d099303876872e38a3ae223f95127cd947f185b33d09e880f044b90f80548416821790557f2665b0321af36e71647a2f8d5ae71efa11970f66e6c163b7d786fd11eba765c280548416821790557f46a4909b140b2b187ed42d3d9544aeeb3fbff65b716d983b909f199706b0763380548416821790557fdb3bbd798dbba5d79de0c9fcf4eba5ac7350b75ef5009fb3ec353440ad2baf4a80548416821790557fa388aff22db8112b41327e18319aedd847cad121ac37a87ac637c20f032422b280548416821790557f5c583bfa0f491971e246dca48ba8995b94c1757dc1448527af72c743babc00c780548416821790557ff76d32495f53239890e0dcb26c27d5aa168b77076c1777b9bfff4fe6fe65dad180548416821790557fd940d8eb3a28c80d91306ed747af7092f9750f548d64dd71012be93235393da180548416821790557fc2671a2c356c1aecac16f1089dcd85fecb5a890dceb91d15eed178bf316ba60980548416821790557fe0610cbe256f816e9392fe0e38c4f0b8ac1d08bd7d3cc7f5b049bb9b1da2caac80548416821790557fb4ceafa2e71b1450559b580d720e1c9bc70f4bae04173dcd4bb05132fcffe66180548416821790557f80076734affb254e661ae341ffd2982988b139ae93848b2ac8aec9ca0d9ce49c80548416821790557ff7435ab002d10670d3cee436e18f0003b68370b3d7d706c8ac9e2f5b6c41c2dd80548416821790557f65cf5803d123a1596d6e4a0cf5d524b9b125f4c1da306c458d5a4fd185cd8a2c80548416821790557fdeb3920ab42e01a75277b58cedce0da03345d2c0edeb324f80cf4eaf79da52fa80548416821790557fadfc9ba3ef6488c32d248314de90d1eb4f730587e5211c7dd134872779006b4a80548416821790557fbe78d29c89c32842ebdfe4cf77dba7fa9a6a7ef8651a7c52e4c63f8f72605f5280548416821790557f77caaea5a3613361db91808d75b6a0f36cef2b5ca7e0297737e080787e28411280548416821790557f9c5fee1bfacd34f208b8218ffa5a80c1498079668dbecf1981617d83dc8b39c480548416821790557f4b6b0f34115e622b0b84d37ff195861f6e4efe157419d668edbe6509e6e09f6e80548416821790557ff17f0f5f1c2bb9eccb872c68f54b91041ae792d7556aa7c4dd294e249f424e7f80548416821790557fe8fe9a4d19d54c0961c8c0b4437aadf5bcb53dc5c503dfd73fc2f8741799278880548416821790557f58cc4066221e1bddf1a5f7a449eec380cc457136ded7fe592645a3e62cbcf6d480548416821790557f51b36b5ddf85e494c546702687b426f5cd67e94dfa35daaf4ff14f8ab09f078f80548416821790557f894b820f71e29966e905ec2af2e89821505f8c93ce8dcba41d452a31dc44c92e80548416821790557f6436fe2e3f6f092729c01866df33244ce290bf511b9143a4da8553979c63ee6a80548416821790557f92c8cf726f23ee7edcde177c5bc4ddee22f2e4e2dcbd4c0d259b37e6d28ebb8580548416821790557fa60e6aab4ba24da7a56661663448a190f8443f3bbc1b04392b7ccc77e1eb639480548416821790557f44735453a53c7d074cb7b4da78e8d60bc1daa1daf9cb61a6950702b1830a463c80548416821790557f69f82857b999759325898f870a2fd3e5c67d9d2375123f0d6c7ec2fe42b502cd80548416821790557f52915a35e130698a9d14e2cbe1d2709ca59c38a8284e7ea2311913de016577d080548416821790557f93ebefeeb1894d6ad04ca58ee344ffd9dd1197885e68018dfd6cadddeb90b95a80548416821790557ff3b6ec93b14d317440a977dc3df86d539c3bc44a013b2fddde166e178d2e077580548416821790557fd47bd176191a796d04f319de24cd26408ca30be2b7602ded7c9ffa151d6cf0bf80548416821790557fa667f8088664691879ce7212d11543c4d85967d10d107a68d74088e694a7d18d80548416821790557fb4d7f02638e1320d626ea5e8410715944bd03807bdae1b0339f103bfbb77430080548416821790557f168f869ff8546224c31621350f82f8ac49d6209aabaa70ec838e71c7150ce9e680548416821790557f10ad86039ba5dc568668163bd37c5a2fdd2fad97a1707d3bdcdd2859105eee2d80548416821790557f3d83a9d900d30b0dd7ddcc45c6f4c0824310b8f4096d4b870e02df97d029a46980548416821790557f6b4d943715e3ff08d37a495eb1ee963f7f55423cf4b5efcdf70159537a370a5f80548416821790557fa2501e6d1add1ddf5b6662ae76f2edf83985fae609a55394c38246d04926dd5280548416821790557f431a9c31f744b60f1a6e5299e95a0c4bcadaac4727f67b49fe90bc0e6da1ffb780548416821790557f53d566154e2538e8caae32106881369f2a28d3ad98945eb7d84e805b9835bd5f80548416821790557fb93846baf16a053a8d24f4931d12eb5ac4f27c3618e98660c9a67ee00918c24180548416821790557f31c8b35c4cc61d7048cea2a093ac0fc9c7c3aa151248c8eb11e2a387e432b30380548416821790557f3f337971819b46b53675f4526a5efc377ff336d0dff0b5ba40d81b108f82177d80548416821790557fc5f3446a658133d9b5ef05137a9e31ac6343de673e2a1033a8f6d202bd02c1c880548416821790557f5f001d856780b1f9d984fb7f8f0dddb3d90c3f66fe4ba1071cf897b859683ae380548416821790557fe8275633c2a4c3bc8693573e1893986edd8d48b5b89e61bd4a6f766e793ceee380548416821790557f5449583a69041cfa025eedc6c792e17d73ea3b1bc1f9d17f0b93e07ac9035d0480548416821790557f2cc61fc96593bd8a45836e0a672ae16426cab5cad74ffaa1e5c997d35a83a46380548416821790557f46d4c8fbb45dc14949b6ffa8583cd737bb2f4bb6d1b2b081bc80a29dc02e159380548416821790557f4f7bdf2f0beb62d8529f90eb6a80f3600cc1fc977222d58373a66739c2184f7880548416821790557f3a85dbd1e9ec3ad441de6b314cd4dfd6d1b019cf96bcdac0368e29e59b98240880548416821790557f8ccd8ab9845a358bb2fed20164193aea93eddad383476ca48bc2534d0b759fea80548416821790557f0d51f301c86981d49b9d2556602ddeea91254842ea6a8843b219ed9ac45ae8b480548416821790557fb33d9b70afeeca7a87b82182e2b2f94498101e2521b8414e84259b99fd2a673e80548416821790557f23f59fb5a0de83cef2e49bf5593c63ee4833e3564b822d992a10cae41683b7f880548416821790557f431f6d151bb846d4c14722e66976b56a644a96e4c1c2d6fff7d0a5f18865d1d480548416821790557fbfa1c30e17dd50d9e18ecd289242838b10124efffb574706c036602e4ae89e4080548416821790557f1965f72ad1524f9fdd2542ce0e2dcfa3a0a2cc54359d312348c14cb7cbde09d680548416821790557fbf5b5a9e5d750915ec69572fd6dc240671d392b500dc5a68eb69ebc99a5e22da80548416821790557f50adcdc723ebc95c8c2129ff49dbd39b33b6300ef0241df89603d2c40723e02e80548416821790557f3ef9615038081802bea755caae69e9eabc651a656cf4902f4b7ca1e9794ed26780548416821790557f512624db1a92706872846130c5d944e4351a56f6fc6e08d405f8827f6d41fdf280548416821790557f96f6f02fa5d3014b7484fd154a21616778678b20d7e9acda5630e4860f3b724e80548416821790557faf6fd1b81ce0f47627877571121fc5bbe56d4dc0ccbd615ba6b353bf8ee6041c80548416821790557fc94d003f7d8f2aa5502d02f4165e7591d60a662cfadd8af50e233dcd591332e580548416821790557fabb1999a0cf088f50359e8a4d47c8ac629903e8f01ed0369ced8d10b648343c280548416821790557f33f23db951bd531db9032d30aa002a914721dbb88d06facce653238a3a33299580548416821790557f84c9a330885ec9e9a87040e614b0afba19bb375c07284f76cff4eae82b4ed47580548416821790557fc1484dc3749b3964fc9565ba1ff9951b7a275b468d1918555b524823a2ece5b980548416821790557fe99e2a2e7b37dd374460d791db0fca6e301253afb06da29c82d10745c0cdbe5480548416821790557fb017039804845dfc5a03ef38553989452180421d5d70637a0bfc239206bc996d80548416821790557fdb625fafda8280262c7e67ff617000c7dc43be50c32774f482fd82ef819e1aef80548416821790557f589fa46deb362478a6a809d8622d05d45f020c00019469c949ec96601121da7780548416821790557f974beaca584711435e12bf919049757d6040191b33a8de28a4602e6e7101f88c80548416821790557f45c8c2eb46b6958844f9d1ab28c2a11cb44e3421fb403fb584427fd4d5141d0180548416821790557f5c4ea3ea640a270c38415a874c409de40b24a706e5ae4771ea06cc2ff04068a880548416821790557fc85dfe0d7307f0986f5054af40e0dccebd90dd679482688fc5c7472d7fa038ad80548416821790557fcb6920879afe2f5d85b94dbe63b76ecf2c7c99e7f99d7eca45d8483757d8e6d980548416821790557f915276cdcc9345b1e2c1027ae9df24a0e252f17f7ed52b573cff6231496f5d6780548416821790557f32ffb1c4f84a34f2fbc61a1391be87399b06d73664df9358b1590d3695b6880180548416821790557f1bcc29c366827468c73368f08750593cfcec241fa4cb3a2c43d12df97575d35180548416821790557fbe13d3f5315c50714a1fcafb1b10bebca103ebee7718f3f108fdade58567694980548416821790557fc85cdab789804c8d2b6fb88b9f1a6cfb660ea266c19bc0d3bc3c659353142b8580548416821790557f1450c30fad4c85cd7cc20b3b9af3213fb2826b2dd69ff98276e8208b215ee1c780548416821790557fefcff6d6977249a2c3bc560ce02740af7fc7feb5f43c2989c51f876b79b5bbcd80548416821790557f6014861921844018716ae4dbad14a3aaf0eaf44cf0763c22fcedb0388c64a98a80548416821790557f1e1f1188a9081b41822dd0a27026a5d1a2c4b487388954ac955c420894f008bb80548416821790557f64d009f19169b32ba9fa0454adc8fd461f89af99fced3f9308f184c82e3be12f80548416821790557f5be6c78d017a70d83ead932e15efaef40f679113fcbbfbb929f9736547297df580548416821790557f53329df3248c5060b239ce612820a9c770655297ee95e5e1c42b6cee69b156f680548416821790557f28dbd3288fe20e6c0a1c735aad3882274f9b842ce5f7a6f7763d902272977d7c80548416821790557f4624a27b49e95555e4abda87cd2998e75a11378f635f5d2312802af5057f6abe80548416821790557f3014818566135df8e8a853547bea46fe2cb2e247368d077b1f344e3e26a58f5680548416821790557fcb97886efcbbb6882f4600d26fa6d2b9e5dbaea64c399a657f1de3b60f13ea4f80548416821790557fa6749cdc501f41fb7831caaa6e30a63792868899f49c38338442867fae916bec80548416821790557fc2eb764e4130e20d26f1cfcaf78a620f7f000e5b1619efbdf14ac5bde46bf21d80548416821790557f18a52141cc943bb137e1b1a787e871e351758ff52ba5c27d0c487ebb5b0e5c3d80548416821790557f4a5a5bc00641d6ff9e5c05ba114b3e8cfaeb7c5964de21b639abb9f7e5e8eae080548416821790557f07def8087acda85fd211e04f697eacb15dd3956f1259d2b7e7d49f329f7a76af80548416821790557fc490a11a2209a772eac51ecfbf38f977c4e902b4bd6f5b612e9e51409b760a2f80548416821790557fa0c93b4581b88fa95d202b1f7d29ff97fed53af1487b306f421d9a321b63d36380548416821790557f7afeccae1f32fd28a663dd143f3d8e2f4bb7f2993cc7d338f599abfbff0ce03780548416821790557f91ec810962afcb214a54ce1733258374887838f458e6397bfdf22c9fb0f3702b80548416821790557f427579fe175ef33971e5563a6359a35600a00cdcc777095ceda21c751408f14a80548416821790557ff21b0e0885893cb016b50c3db27fa17fc47003b7590deda970931db11e5369ba80548416821790557f46ff8cd314c1bdb144660c1d0673b18ba7a9ea1db5ca209f392074a5dbe56d9580548416821790557fa552a5b3b4c5f9b4d5c46a4f42865de1a0a54967f3264d8b2f013b54e7977b4c80548416821790557f531bbd5ce125ca77f3bce8579665429d4e24e6b883b0d44f502ac912efd9fa9380548416821790557f46a6d62fe0e8a68ebb65a966cdec77d7e9d484fcd7add1c99f1b865aab5e2e9380548416821790557f33af0283865df75ec6449f3e8adc4d240a6b69ae1dda32e1a696f2786cfb78ae80548416821790557f56e30b17dd1ed2e0dfcff02ec92be085641b7edf14457803fa19a6c9f2c8dd0d80548416821790557fe3910aa57928e562ab69a0060ddc209a2b71d21a4cc48e842c05db66e86b6e6080548416821790557f45d3432221b2261d51ab385eeb553daf6534ac360abf6323472437bf22932a9880548416821790557f6e2aec3334ecffd7b22693034a6212012e04505f5ba5e861a3435d7d1cdfe17880548416821790557f0fcfc6b6845e784fb292d08131a8308a8e6a31640d408d96956c2e5c5196cb9e80548416821790557f9bb5c192ab963cca0e75834f87df5d0ed24f33be08186dbcb7f7a1b5e37e6b3880548416821790557fe90d01da17735f958be723750463ee2c3ac85b1e0097b89d4bc16980e2cfb92580548416821790557f738eeea15b6eac0c0ffbaa74835ae4b17dc47dde0e4d7b2170be00a8ab38beb380548416821790557f90ff451eb65e4af64abdeccab2b48eab7dede1e9cd37eb5b8355d80fb949067f80548416821790557f8e2c790b2d4d0b0924cb6746397e29a506c7107548f9d46b647b5750826b27a280548416821790557f17c5d78cd8068c44b269e5c8f4b96b449e959212417facfcf74205886f21696a80548416821790557f837a46f22dd66694fdc511731e06842f417ee48f01ca82dfdbb4f065139d0ef780548416821790557f6599ca03aec834584768f19d82bca925c4f1a4243823c0e34eaf3dbc9eeea1db80548416821790557f8d1be747c10b41e5d945ea8370f7fafd2600ef560ec67081c2c980e3ca9c324f80548416821790557fd5b156783fde78cf1bea2115105efeb20c92427994c40b921cfebd68b55ee69480548416821790557f430333b27f78530d650ce2042a796944a8f19a1b50b674d50be6b2dc8187a57180548416821790557f065176310ef6451659f9c586bfd0436a21ab0751463a5b8964afee3699b3e0ae80548416821790557f46cba5af39eb74135af08174e09b8f77212b4a29893a825e3f63951f35503afe80548416821790557fbd2a7a7d50af3bc3af62f075d985bb19728be24cf75653ab5741bb58a6aa0aef80548416821790557fcb413b18b2027ef124f09c6bc642066f021fde91a5f1390c0dafb7adf38e673d80548416821790557fed4337dc7bdcce8b02b806b31b007cc47052fa591abaf2d16e628a6e4cfe17b180548416821790557fe1b1757e1bb3be396508ff06d7d20b036e4e23a94929e97e90af267fae662b9980548416821790557fa441e400d067833fc8f2e3744b0058d48c00f96bddc3c26dad20c4f8c22c2b5480548416821790557f5ec0fe6321e3c8a6fd97d304921e204e9e2cd0bb899bd3e531ef6e3f46bf508980548416821790557fc074bb2d25a33e877e77c6d128a4a7533d600419bb267b4be1df48c920162eca80548416821790557f5f64b2460631facb8724662701a873da4b21b8a2449b97818702f7e0ed59f1bc80548416821790557f626eb0c1f89fd296f500611863da03b3e537a0768fb801e7d55b7cb3346c98f080548416821790557377350b2e23c778b1bccd0edd97c6815cc9a27a176000527f8ad90e42b1e1b85c34cf39ef8c9ba4391147070031c4552060e23e989fee16df80549093168115159091021790915550600e60208181527f441749997d820a89529d8f96a7778a69cb9a04e88303b80a33f553dbd6a0eefb805460ff1990811660019081179092557fafdd04659b4af50ed51423ce05598d37d6fd33fb0e6ef11d10ee262852d8b8af80548216831790557f585145391218538be49c52ec89ac6a2a4e01c5c34b08d97d59ecead010bf803580548216831790557f22b3cff7d937e5feff8104b0a8ada6bd215a33f699f4fab4a0fd2489cc8b39d580548216831790557f1b7168b3c64a4128e86e017facc4a71074123da491473f82e5fd0f516e309e0480548216831790557fb070eb51904946c3a156d062b0efae29533c662bbcd27e0cca032b51d03291c680548216831790557ffb3068f4b73b4b5ac7281aadce0cf0835edb82f4fa44645678650c2a9c3a1ff480548216831790557f40ec0731c0bedb9dd09d07c98e4c3552a3ccb7e898ccc05ccffab0ac0b524f7b80548216831790557f287903148283d25d437df39c0bb635493a9dbb1b45ad5873c9acd63311646f4080548216831790557f638f05efb779778431ac86f3456d2feebfea62cffe0c7cb086e5754f36ce87d180548216831790557f81aa76582647372123f41b40f4a5e44f544f02342423bd121d7b55203001c5e880548216831790557f8d27c5443c914cec71fdf1caa1ae69c51cd59d8fcae54e295239f89c81bfbb1a80548216831790557f9a279114ad86d30a1199bb7c8101bcf428f76f8934475e5157161fc262ae808280548216831790557fb3d0be3810a1fa980d2980f49906a403c5016ce082aeb23b45d688daaaf2e32a80548216831790557f18dec8c0bd24be85f3a2350471f92296fc25993558ac1c99ced7d897d2ffdaa380548216831790557f2049142365c3649c54fddb1b4b951ff7037aa62cacf920ff7815d55d4b32e00d80548216831790557f64fa7ae9fd638db5496fd44e55654b62147f903c890a6229ef66595b21853f7380548216831790557fa3b3bfab620a623450da1ba13ff457942981b1d2092a7b7828cc2ce3dc23603380548216831790557ffb8c2523f12e94450ae9c3e8143f1933e51ba47deda193dc95d2f442761dbdaf80548216831790557f28edd0ee7239983b48ff7dcac0d48e208c1b65fd4bb5d04af76d1ebb72050c4480548216831790557f59d86fee799cdb6039ffb5beb8d9e6246fc8b0493a473388a35b6dae461e3d0d80548216831790557f0ba5ac490e83918bc594689f7cd4a82b484a1cc12ae3d243f795ba29808b98ed80548216831790557fa1a3382600ef341c68e78476a6620971e256494bb63fcbad298c123399073eaf80548216831790557f15071262399fc4ee014aee5a9a52fc527652ae57ca2e73afbf59062c1a2e2f7680548216831790557f6b7849c68c413c6bd186bb0a3ac4f6b2c4fd43d9eb47021e9c898357f7a59e1e80548216831790557f5b32209a6d05e1433e47c2d48162e6a016c33e3a609bf5b346e7d7f4fff9574880548216831790557f33f303fc540cc7a2b15aed7059576ff7d2b9f41b23f4a3b13b6f5ac515e4a79780548216831790557f33f5eeddf4f88caa246c22575109faefca0c8ef86030d6369f3784b3579afa6180548216831790557ffb2d9db50b18320f84d0c7d65b759470c26cf61561dae8f60edc7b6256e1e9d280548216831790557f7e5d8c25eb04ad1562020903f4433a8e6fcfbe273c93285132ce5058dd791c5780548216831790557f25f24a42d8342da6161e6475a6db70f5ddd01710bcbdb910c34ca57038f4c9ad80548216831790557fafb688fc0da340d5c4d2eb8ebf77ed7135c345ae94c2c598b23ac70598b5d62380548216831790557ff7576c4a6747350a02d7e5fe66e4d42c71d59431b5cf3a4603209d9e944b8aaa80548216831790557f4017467a85bcbf17400270d60d0cf5d832d22531308fbd1aff7cbebfd84ea11b80548216831790557fcc81ad29d37b7e36d2803a18d7e14684e9f20b436a8316436fd8f2652782d86880548216831790557fa6670a615b8fadc11747ddef3633b0b8cb3276e67b73cc3813988c6a0d8aed2e80548216831790557fd132ed3a2ef4ae385a112ba769143188a199b31f3473020214afc98d8c62722580548216831790557f2281ae9ac4a8c4f67054464fb9cc08c119e5a9e234fbb7827cffc50a2b8bd8d880548216831790557f6b2f28b9bedb58e10b7d4057a7eb88998f40c6d68b384b6df3b531a27c4f540f80548216831790557fbb7190cad6d22c6dd5d64e84a67803bfc3144f2f518273edd51e5ca2494c557d80548216831790557f085838b232d77074fa39836cd491f61100e03a10aa822d08decac87127c2406d80548216831790557f2c4a79191f9d0a880f3f9f6623ff62191202e7f0eb98483d86d82135722c0f6780548216831790557f1bde6ce7d081518bbbac4a6f937597efa1f83c65c0ff0a26ad8760496f8a40cd80548216831790557f2f39d25cd3e728dcb2d2fd811256b51ea30309b2f30f6f03b3c68110b3d11c9e80548216831790557f2def352c5b660b39698e63a98027d4af3d21cd4cdc8032f666975602e92f7fdb80548216831790557f2c870fa58512895859fa3fd6e9988c2288c6f73b2dd2a769824e3b6692faf3f680548216831790557f4a2296cec94b06991498cf7f5a32481ec0a707230528cff98ab2bebcfb2e9cb080548216831790557f0f69de5a0200b58ec28e11d6720f5ff8214530bd3ed914bf9b8731721261bf6a80548216831790557f19211caf1fdfbd785ff78680b6c5bc554a05bc7e35a2fb856dbddfc496ea4c9d80548216831790557ff3cd3bad94d71178a70596032a14ebbf0432feb69d26eeccbceaa2ba552a8b3780548216831790557f5a8b40a502801b432906e7424c3482669aa1fbdce34bae3e96b441480892305480548216831790557fc77455e05557b0221bdd7464eab6a091096649192c82995ff4c161d24af5fed680548216831790557fe820be581d69d2fb308546b2234fe1d0505c6851ae670661ed9fb87ed1d634e580548216831790557f2ddade790beb1f6473709daa14f7ff7aca1d62dc68a0b445a02da9e8b739204b80548216831790557fe49cc6f3b28f81e43047d5d7fe0001d0e612335961b171178cfc45f9ea7f352d80548216831790557fccaf7301eb2096865c80fcf85eea9e05912f528211cb3e5718e853770b41a84f80548216831790557fdf62f7509740eff52e00f6f99887e877306465e1618a1fb7da4aa4802cd6d9b880548216831790557f14cf10d7f27cd07a427c98129e1d5b91a2e5c3b95602687ebd79b2aaacbdd0b480548216831790557fadfeff3c5949900bca2dbd454f987ac891352a3658853a73f8c6f23c62faa6e280548216831790557f4a5c0f38be7a6276ec874bb190a8dc630e450564c3d0baf195e0b0284224075980548216831790557f65744a16ad08c2fe5a5fbcf201e5c0758a56c90efb3b25be17c566f110e19b5480548216831790557f6cdfd1faee287ace4f371c467eaa80a83e96103adfdd132b811bf54c70c29b8f80548216831790557f2cad6f069c8f5055e84545d761ae3c477c8dc199c8124b10d82f73b304ba719c80548216831790557ffddb8a7d3247278ad49620c3e667b3f11db9bf61e3c6bf6bca6ab7ab57539b7280548216831790557f33798aeddaf2385c2d4f54471b7123ed54ca1ef1755606b2670106ae14bdf9ec80548216831790557f68de9b0d03b95c40f16a80b28864ac4735366653af775c0627555a5e3c42166280548216831790557fc1e4d7d55c9c66eb7966b4bccf7847286296313d9c0bbc01e3c58ec5c89a57b980548216831790557fe3bf6955fa6260fa793c83038da9f634d84e0607c8178a399f8ceac085346ea780548216831790557facb2f7a316c97e6ee569d84b7313729de076252da722e8fc70a0d3cd19fb742280548216831790557f8b193b7690e95798334348e96fa486c30bfe4130fbd6f0a9dc02b07583784e8880548216831790557f3e3f1af390b325c9d181bd6f247fddc89fa365f8f6dfbd48557e316e45a8f2f980548216831790557f61fe64b6ec881c09b2414da4aa41efb83573196925b37e4790da1d0021de74e880548216831790557f52a77fa411c88524a2d763435e5022f6d5270663702b3966c8ec95bcac18d60680548216831790557f569e0b0582f859519aa08ade71dd670cf929a74c853ad0240c217bf12efd37fc80548216831790557f5d4544145498f603a36340073552f2a1733a6f4e1a4218d0fd0539dfc8312d7280548216831790557fb97db66ff4a9de77d89e167d354e2890d080796d05a702a8d13840b166e1a5bb80548216831790557f8216a45828ec9a9f343e7d58920222fdabaa8adb5e6292ab1bcd0d5b38eed70780548216831790557f20b5ffc9c28f9b70ad2c98b05bf00003ae74f69becb435f545ae3f55ca87c2ff80548216831790557ff5a5d5bcdab3aaa89e90cf219bcc73f378d16e2c17d6e569c1720d40b50c5ad780548216831790557f484266601531a55e152aaa8053a3f66ae2f1e4f3f138d7b0415e33768f9de03280548216831790557f0a9d83e9702e9d38aad7bedb42d265fa1c945b0421f2b51bf5292bde6b7c0e6380548216831790557fbf2a215b3abc12ca2d5dfda3154b204eaf236ee81f0fd3a48e4a23ee8795b3d680548216831790557f427d9f60babc75fd4b0ae819bdc232fc61146f345b0b5a03558bd16296aa246f80548216831790557f8e5ca3d8f280def2eb267852c5960bf6206d01d618dbe02670964a7e1dbdd2ec80548216831790557f6e782cd46f8939770fc42ab7728c2e52a6f4d9d8eeea9cd602a338c4b64a28be80548216831790557f56393bb66b38133b7e1ef25837492bc3f3e9a6e42c6fa2519c8a0914f77a720f80548216831790557ffa36354b96a2136651c9f891073985ca1154effc47696d71d83501f4ba204dff80548216831790557f9b187ff3f596206876a938da0e642aae194d6394412dd8d7fe003bdced8c965380548216831790557ff5c669924acd656ac80313b791cba2e5d2e0df1c16bf242abfc294a6ff4e841780548216831790557f5f0e8a293593b028782cb055d0e329b0c30b0f16784ef59738c5d8b68789f69d80548216831790557f2dd31f6c75f4fb42e04ff1ba098ea763b39b2ad2ec665d8a403c4ce9a3a4492b80548216831790557fcf46af5640faf34c405d9669df24832d850788c52819efe3ab638bbdf27f95f880548216831790557ff021b775d5c6090fc99a236019ea4b9b350c4efcf86e53672ab35b2f47ed1acc80548216831790557f1c3e79283d3c054cdf45b6142c8c51545d822422e3449f91553eac65a196514880548216831790557f4e3f591b7a2d581ebe446d3ae87d3b2d0277be334b279f2b57cd19f4e2a604dc80548216831790557f79881536feaeef53eeb979e053f2f4ff15a706478b2ee56e26121463563787eb80548216831790557f15028e5961653bfd2083c80c3a00c9f1ad9ba5c65e672fc46f9e1aab69cec48e80548216831790557fcc5845a1a14f44cb543ed55dac2d65e5ce12eb0af8562afa574665df1528b40b80548216831790557f419406cb3c2baa3c4081506a1dfa9cb23cd0fc67dd7ae353826e89fddaa9049880548216831790557f6a38d4ad0f4c2f606f550718b14cf6de1c7b983cc96ce82a17c446e80ff9f6aa80548216831790557fe944d601a268e87c1ee211b13d3799cb453522867cf5da4bbcc81eebc26fe76080548216831790557fa99de5971affb41dbc0db9892ba522e96a3b1e8abf7754178cc924b7b6d5d4b280548216831790557fcf2ac2ceb2b830165c7b2f078f484e4017f494a540005abc98826d90d54a6c8980548216831790557f9dd570db1cd416e483e2fa0bf5708118314e70645e55d984a049f62d12e2073480548216831790557fda8812eaf553751b45216f62c3cc6f71cec365b067a3e96219d4cb718350bf8580548216831790557fc308ac012473a5b89b14a660f4ae8460dca98e81096afe0f68731aaf988d4aab80548216831790557f619ba36e8c160d082472fb416f2af688dfc76b128308b09792f177691f2170b280548216831790557ff8e7ff3931f78eda09311b0660a1f13d6b7d0fc1400f67386de0e991fc9f22ef80548216831790557f8059fd44a873da688e0abd12ec40a08624137659e6d3d3f9fce265e2e4dd760c80548216831790557f246367dc82b2e525f03f975cb7e70859a471bb3ccc281c6df59e64d52a16217e80548216831790557fe66fa21c70cc150c06f64cb49defd0239f3207346b30710197e418035a7a3d2c80548216831790557f4b10ece2a0fa5d21c79a8268438fe6123936632358970d60b1e1f526dea10efb80548216831790557f0b88fcc88809a249b1254841bd9b56bf6045abc392d492830a736779f29790b880548216831790557f9f829b49381ae80fa42e9957ada62a67b12c0c1f4fce731f4f0f8ff459e4f6fe80548216831790557fb3f17344fdf0ddadbad6ad0a501aa01502a79a33c497528ad53df0761ea940b780548216831790557f4edb4df35e4024cf1c921e8df85e9251cbe4d74c9de8d13d44949f15100b466480548216831790557f7525b924e8068369cf6b14c52156a40f143fbefb652b754f4ed571cc36129ace80548216831790557f102906155ceedd2f9851411a1fd4b989fc764c00e7e56740644a519754bf414780548216831790557f49e68cdfaea1797bebbd2049c16dfb17d3f09d449063be1db9d2c99ab659e85a80548216831790557fba7b806a79176c86f36837a4d97518389e506cefc7e2a506badc00a7ad2183e580548216831790557f11abfa4780ab98728e8bf3999e289502dff3077b70677264e44e8fc991832e4d80548216831790557fce79ca7d87f3ea0d8cf8426d49f635723df58d97afbd3dc182b016d46c14c0d880548216831790557fb5a54d54b4787b916721595a419817759e2d675f3062a7355fe17023c254e62580548216831790557f0b5601ec0fb7ffa4c335645b77fceb0aedb378f2c36a2d7bfd24b77ce95e33d680548216831790557f15b2047015442636d456a42c06f96da596743262099d094f37c664b6979307c480548216831790557fdeb53bd59a3f373d5ce34f798a56e1493e5c42e29c78430d018b19fdf02d2fc380548216831790557f2c01f1d8128379bd961ee5227e082fa46fb35d265dcf1d842ffd5a8545c5f4f680548216831790557f388615ab237fc6b59355ec7f9b29566f7ffc2a84f62260da0e20dd665e88bb1680548216831790557f9eaf32ac79b7b72bcd15095eb03e4f6b64841c99f2d86340d9212d7feffe824680548216831790557ff75163e8375ef25a4f78651f2652d11304688cb9b4b734a64f91b0141ffa116380548216831790557f5243b4b6e414b83f57ac53ed8e83a0181cec7b68b4b1ab22e55eb8e61d325d6480548216831790557f116149890b431e0e0a0c6f0390126250d74516048916cfe0cce5890dbce5c4db80548216831790557f8d07d8f593e8492d10454088379fdc1b558506bffc1836ca98ec94438f565f1280548216831790557f049bfa7b18cc16cd9a62e05b73c57fb08676a66d1bf052fffbe06d8dbe600dd080548216831790557fa7313dbe90777adfe05621e4aeb50e5b23dc0d6087b623033851c1d64953fd2d80548216831790557f0492a4df53cf771a35018cc9874c62c1a8fdbb97be0f86006caac4c5525f07a480548216831790557fe7024423c175297f46e472eb673107e1f5d82fa9f21bdabc20ca421b91d436a380548216831790557f2a40d926ffb2d7d8dc030ac6ca174e2d282ebbd6bf1d8cceb4d9084d56b5991f80548216831790557f2f32de14edfbbece404ad80c70f89108a208d89718050dbed23e20acbd7cd3d180548216831790557fbc15f7848601636143df574d0bff086edf7460ea4368fa147c7a934be3f9c2b580548216831790557ff02a4d0b5d187e6b5dfef8ba8abd207961aea19ad0d4fef8e1dfa35d15de403f80548216831790557ff1ea5947632d9c33f0be8f50c9008790f2ccdd9e83814c9698a92a1df61c270580548216831790557f16c6671fc59bb110cfbbc982261421c0cda2a093e8860c98d1f5ac5adf0b13c880548216831790557f668614c18fc57abb6911b7780e8f3be0d777b9d034156c17538f010d9e034a4280548216831790557f085fe82eac0263f53a4cb81bc77c41519aee9f977d8226451363c61a31b186fa80548216831790557f4f8c732ed2c4e32172eb0cf1eccdd46d1df1a434d33f2636fd11e69274e48aa680548216831790557f21929773662ac1efca6e4fd104b30ddabf75fb798c689b16646876f75a16f97a80548216831790557feec58bd281cb087b1202db4b6880ddf248fbd318bae285487d889195ed05e2b680548216831790557fcf8915b8cda993a021dd13cfc0d263baf2c41e28ff6351753c92e41fa3fb8e5780548216831790557f2e5c05481bcaf9e5dec80fe18a7c9736a40edbdc4eca761dbd71a42cc7c64dad80548216831790557f29ce852937c2789b05628868d601bbaf6f6892699688fbfa249adc656ebe8ee280548216831790557fda3b0a6e39934d2fb4701c09d9febdd945763daf98ca5de53af92eb5dbb2ceb180548216831790557f217d3cbc0ffa0b2c273fe407443a4ca8ce101cbd988e2d9a71f017a04bcf67bd80548216831790557fb953688f181bd69b941923f7222ef96a175b4bfb2a448dc315f56de642a968e180548216831790557f20eddec9e8f36aea38400a233356c009f07b0f5a239176cdd0a23b124701bce680548216831790557ff39ebf80117dd1c2d4a746f15e148b7e5d9aa0e38a76f6219515ab17836035a380548216831790557f9d185311e5f24fd6c0454cb4146842406794daae01f3eaad5b5dea76fe6208be80548216831790557ff7156f3966adb0d408114de86be9444cef2a3e3c1b1d9088afc6673d4ab41bd980548216831790557f49504fa8261d84cfde9055d890863d9aa45e2a9f3a4a081782d161192e62783d80548216831790557f9efdfa78100bc5aaef18bb2fda5c5054479b5b7d0f0e58f8e963ad8b58db822e80548216831790557f013122a9a900ec553c1fd20b2f26ce5e2e4169346eb82a3b99e4130923b80fbc80548216831790557f022f4576ef212e37a72f00b44ed3820c08c5a80a3f34cc10119a8d57ea6e6fd380548216831790557fd9d8bad037bd52fe63c75c62f492160cdb89a04e9b80430a2649b3899b92b44f80548216831790557ffb2f1466871e4e169b170343758a34cebf19726d87d9aaf28174ad8e0cd6dd5b80548216831790557f44bec1765ab1ff61f9f4a44844a1d9256873fc75cd718ec0daf18d3ad4ce267a80548216831790557f15f8d3243ae0ce1eab0edac5c985d5eb97a0ae32e38832047754f020096c6c9e80548216831790557f331f96d16b41795672b42c0c6419452f30b654496f0e39f5e97ec14c02e9c87080548216831790557f417e8ce9191be054f7979f94dedb2b80778bc5c2a57b7e1ba8747b26b3e0c92980548216831790557fb07696590f396b0a99ad0e5a81054222be494f02b1761d01087fd29895927bac80548216831790557f8d6666bcd9da8f3151ed21b78736652c6abb3ae72b23a2bb04dfacc52145a7a880548216831790557fd609f15b3e49e28de6413e083f78d58c668c0add97eba81aff4827f996ffb6d280548216831790557f058938faa165bdde4bbc93bc3284a1630376a93bb19553c4cb2365488216e1ce80548216831790557f20a5a1bb0aef1efe39d0cd1cddcc959c97e6fab6600c76f751cdcac0810a94e080548216831790557f1729ec23892f6efc89f916ee65788839ef7a43b69bf10b299c277dd078a1fa8180548216831790557f26eed16162848ddce6d7cfd26d4177debcdec3d438ffe01c7bad61265162659880548216831790557f66c64b929d1d6e2144b35e9df88e7ddfac596234b005a391e19a2a4407a0b07480548216831790557fb92bfdacda171c3f0ac78089e949b2bc4502dcb8d8ebb452b01645ce84c80a4a80548216831790557f723d1b5ec58099c16f35bff70b65db428c4b069f89f2d9877b0038654ae243a180548216831790557f97331ee3d35064286edab84751b9ec43a0f5ac70f7db8d3441942a53624a367980548216831790557f94ec67cf9bb090a1a74bec6f72e1906c1a724932fbf302df65119c17baf9cf4380548216831790557f83b0b44b3e3cff3642c4c92870862ea125c2a50314e81bd988a58201cf26c39080548216831790557ff74bf69968bb99d426f8fb87310f7896cc6f7c485653cc2dcf3495322614f08f80548216831790557f36c1c014bac2098a5fc9f9c6b0e96290eded87637cc40933e7a819bd04c1301780548216831790557fcb9bb1423e0cf9e8abc0d8d40eea967a0face3748f4b37d8158dce4daec9d51980548216831790557fdc581ed0bd368c6b22b102f577bd0740e9488d557c3bbc3aec4275dd5bb4f85380548216831790557f9468ecea72869fc4f3d3a20b65403120b8efe44c220289c4a8a27d84283b5a3c80548216831790557f2e6825bec6e496eef123e0e794353df3cf9e24af5deba8cfaad0008ddf5ace6780548216831790557f31e8d10c11d7ff587de8d963623e75bd14e69dd45831fce6744e7f3156abf83080548216831790557f10f80a517f3a3dc0b4f293334193a6c9fe43216fd0d901abf2c50eb19ce216b680548216831790557f34fc30ae43a9e17bcb5f02ef35e4bb3db435ec29410570b8012b309c437a4c6380548216831790557f904dbc989498523aee05f91c04dd26d02623fbc4726036c280c0f7b5e276af9580548216831790557fb0c59cfa9cebace375c1cc61cdf98f026a563861fcbe62787bad01beced46f1180548216831790557f3d955909f7f3bbb5d40a6ffc82d574bc843260c882db92025113bc515dd399b280548216831790557f418c562780dd63f88ebdf05da6b32794419229114aa1d0f15a02764a35a0651080548216831790557fea20fef73002a5fc19ada219ea9924b57fd681578c3ca7bc86299189a9e5462080548216831790557fc913f363f5acc0c64adaf78ec128f9def1072c9e9c29baa1f90163080f26f60c80548216831790557f469c545ae7a3f80105e33e57701d0ad11b5b3c9732ad96ea241384ba4dbf3f6a80548216831790557fd436f6aa15ef7e0fa8430984b43606da5adecd50b8ae1d9ffabcd9c9388abb2980548216831790557ff84e1852939b592d6ec4d079648a16a2d238c7a601eab0b12b7c124ae08523e680548216831790557fbf5c32f5c14512417a0f57b5da277fb3ee63d4c7b7521ba7d940146413843e7980548216831790557f41166969f78fd6061aec248ae974b363367bd06a581f94d5ac03d46e22a8d27280548216831790557f9fce449fea9636f0d1ead662ad58634d9a0e16eba15f6df5537f8eb568ee23b580548216831790557f752ad9f4086b9faed2f9f3369e30e1336a746dd10d3c809debedf14b821e4fbe80548216831790557f942a29985640ffd090a62e0e6e5b14a7bcc31ec6f52d901cb8fb1e68a3b8134080548216831790557fca5b195f319419633abc5aa4a2486c0ec67624ef7c66f80959c633645913fa2f80548216831790557f07ca5f3ab6c22dcf2de0f5358d07f31d54766409f4cea31902d6713908febff380548216831790557f93d508d6986621c91f3073b60fafbf90646c09f923488f6679c30b8296c009d680548216831790557fe6fd8b6c749430ed73ac0dad544a8d47be937df5859a20f83aeb2b5c8b97158480548216831790557f5e0c059734b033d96a07dcf0b4bb5033af4fc2961e8ffdcc2aa3e2804620d21480548216831790557f54c4c6134e22f30ba3aae91cecd5fe0d598396972b2a16e389383f29547ad7fb805490911682179055735c45599120e597770b8b78e0d619219c7721f2bd600090815292825260209182018320805491151560ff19928316179055600e9091527f0c35ec473eb628ebd463280071fa9757401c70bb872f1318391c1ff1345fa5c68054821660019081179091557f9d93f04b92f265ec865fdb8cfb4e1c9d2bd01a74efa6c763bb81444dc9a8f17080548316821790557f6a3533013daf29026fcdc62a7efb21ccd73e36d3e023cca38f9e90c0bc309a6180548316821790557f46865cd40831b907fcfe6ffa8ce19e3a0f9fa90ee7e40b36bce0a6de51443bb680548316821790557f505962076c5b48be14614f0b6d4d192c04f97320bb9cae0f0e6b765ae88615f180548316821790557fca8f07b2e47764b13b8d1502686921fcbd16bd9628a469310a5b63e5f9b833ed80548316821790557f1cff04bb975535ed5b5448e89dfaad45924bca0c479d51d95ea481b7c1ad50ef80548316821790557f1e5cc4f479a5d6fa2f17e7d69510a12a7755c1c8524a4dab44c7c133da72361580548316821790557f0a91975f751da6553cb6dcc004e204fb6e74307c83d138d74ec45080cebea42380548316821790557ffd45ed0144ae5cbdb60d5f535899d77537c3248402a8bc9c2e2c584bb1c0541f80548316821790557fc6ef1e0b87082b8f6e8216537e524a0186d3090baca6fc1f2bfbb3c8aef7641580548316821790557fb2535203fad7e2e8aab2653ae3fc5de12fe0075a534eaf472effc07a6fb385ea80548316821790557fae3d011c773bd5a2f94aa34e8aa215f88f814e661e349c28df5c88efbe9390c280548316821790557fbebacabd95812d5c61b7e6219284bf9488b7b1283fbd110385f57903f6fcf1ca80548316821790557f1c4843245df62c5cd5fd4c8eb466ca6600d90e68e0891faa4eccfacbb741e1c880548316821790557f17bffcefadc945aff808ba05cf2cabebf8caa2cca730c4b605d421bc70f1abda80548316821790557f6a85cbca2f4619cbf339981e0e88fdbfb4b05781fcbf9e4fcd65d48a8b15665d80548316821790557ff4e57f2e5e2741b9d3b4f8ff6c4305e660849b5f805cb560e1c0b3b3ddb9b9af80548316821790557fbb3f32bf8b403bc232ef1fcae9407aca3eac848f62b0170a2be0517a96864a5780548316821790557fc898c3c331a85afffcdd96d7b11efb466e4aa883520af60cf0d5413ebc2ee75380548316821790557f08dcf1faab635b5b94f22f509a85767cdebc042e652da8d9733f5ad7f75baaf580548316821790557fe6dc6fa2ff1e991b44dc42779f587376d12b3a852b8e59a8e0e0a1cb7625d59280548316821790557fd5bc78d62c24317793e72131fe76835af2cdf6ac6b5559f9b286b56b20f25ad780548316821790557f6f3335b71092221d87ed77fd93b261d76db9e8f255f8f83ce962cc21b0655a0c80548316821790557fbf318ec44259cd244ca60c079a7ea917d204426c90e150224ed6a23fa127853e80548316821790557fbb6083731896d52ae89f27d7702f4a157910129b9195d2355ccbd5fc1dfc247a80548316821790557fb63f8b4363b27b3dbd2f2ac6f813a86560b3ecbacbab0aeccf476e8549a1dc9280548316821790557f9af5f24151fc0ee6553ccec9e0efdc3d44d8d5dbd3695163277a4b328438981480548316821790557f0588e6a3140be7ea524ae50914029fc88c5934055e4eea0e69f2769ea1b7249480548316821790557fd1e49b0686408726ea30299bc4f0535d3cbaf4eb0e7549e4d487c9692ce4a18380548316821790557f230e01c3fa723f7fa3ede91abb4d5645c97729752b16da528936942e4fb22d3b80548316821790557f7960280fc1a1bced39f0a14d46e8e4268cc26f701c2df66d7e5bd5027a4e8f8c80548316821790557fde663dd9c321466d66ef058d33aa7342259d4184416dbd8d42e2ee7f67318f9080548316821790557f674e2a9e6e9dee180d90c5ce808c56e7bbf256e2c853113a8ead2e6ce3b6bbfb80548316821790557f88cd0a8beebeded06e9f91ee97baca249d729978d72df9951b7fbdb9740653ab80548316821790557f7cb2d6f3bfbf8630ac5ad7385ba764f4d04bf18191b5138303a6d3847430c2cb80548316821790557e30bb0be1d9363ff2432a77a2bd9aa39bf0131f1d7777cbdf4e21f04eef798880548316821790557f9bb991370ccdc8453877345b096be0913d5d43ad60b5c9c1db07f2a87eeb442280548316821790557fd1a698ed8928c61d59717cd8f0cf13320400e110e4fb631ec4991efd4379cbb580548316821790557f0d529d9e02088502f57f16f4b25e276935e7db9ee295da74785b5c43f96b575e80548316821790557fc65b44a765acc33f3f88d54a34c8b274e3ed84973d8e17a3f01091384597675780548316821790557fcee44f026b783eb59e342bac6e32b0a67882731328e2ce1135937f5bede0264180548316821790557fbdd0f32ffd0916766750c4297a5e0be96349d70487224e29d282a1e1a8484a6280548316821790557f5d7474a31b06228b5c1bc297a0ec2ce6b8e107c5d4f1141762ec7ac9d70118bf80548316821790557fc8abf56555deb252557a76de8ed3061974c812780a7999b1fbf92e96ee5dc0c380548316821790557ff747ff11ea692f57c84648e95f34c08df43d42b26a6b8fcb07eab8091b4f8caf80548316821790557f3a7324b766bf7d8077b329ebb1746e5e4e818597c3ed33f0fdec37d1fbbfdd2f80548316821790557fc20b0419d50993242c4ae707b986b12dffe40c2bde62b9cf17497e8462f3a07280548316821790557fa780558579ba794581e7c6556b40590690b92014a2de368d803bf74970880a2880548316821790557f98ea71e3386d54853d492dd12ed04ba19bf67492c3526c68dddfa64e2f3c807280548316821790557f349a33c8a01b652d05136e1a433b38184d022f2b5b25170a5acd74719654d1c680548316821790557fdc0033eadca7f060ed26992df76039b57676a678a55534747c1945e1adf948f980548316821790557fa1655c413650c7a146e77c10e0baed550acb747dd6c58517da5504b5dcc2c7ca80548316821790557f6f4c20a1d62fa6cb3dcd3eb7ac0ecb64f5a37bcad7ffa863dd64b857a88d0fff80548316821790557f043b0d828e20b001c8df77166b7c17860db04f3d384a99f7b9640cc221487ce780548316821790557f5f54e3a1550e7ca981bc54e4aaa00e1504cfefad58b1d147d63fc4ba862f45b680548316821790557f7d901de8d5f5ff3fdfc9f3e84b618bb898938d442d8decd87c7e53cd7675b6f980548316821790557ff0807343018212eb05b5b5424cb383c6d4b0853e4edfcc996a99847d3d5b9ee580548316821790557fd6179553a7af0f172fd1dbe5f27af60585c4e9b031bad3a6cb8a75f6da5573ac80548316821790557f6b746289222d49110f7f841a2857844c2060d267a298cf339562619b295c236c80548316821790557f63dc68b92f01ee595e451fc3fab9462c3507160810123094254093495f7ac07a80548316821790557f3df911dd79d0e1038be9bc85ca0fde1891edb76fbdf361642053f10cf666d62780548316821790557f784e7ce892cecb5a0832fdad1fb82c9b3c36f46e7f372afaa91f6c1b1b10643d80548316821790557ff308ca7568084731e3af7242cb0bedc39d09f7d5f59e372db7ca28fa49fc2eec80548316821790557fbee80d8eec34feb624a9bdb899a9f5f47fc95a38f06a1e5be07b2c6a7e549d3780548316821790557fdcf64399d6aefd0e7f95b299ab0b604b2ab59b10837cbfd67f4f0da16e0ece2780548316821790557f74051de7d1ed41bc5d171e0aa93a230df5ee203a45848fcdcd396edb80b4ba8080548316821790557fca02b9b4b208008155be9ec6a279504691644bb9c403c1f0b5277ef25ad7c71a80548316821790557f086467c3ed197238d9a9c12a73f806b414d50fa05e90e3bf123049514dc346ab80548316821790557f236c6f4922b23c655e153941118bc4d5df44ea05e9ccc967a86250d0c3d2f37280548316821790557f3e0953e5b17b46f3235e0c5eabced4541d0d207d9eb94bd7e261ee615667a28280548316821790557ff8e51e5d25293036cbba72f0080c3cbcc1c287cb92907f0e13e84dc9d889738c80548316821790557fc758be6282903fa3abf586f3b24e27a73da8c0f289695912323972bb85c8484480548316821790557f9d075ad05913207678e4371050634dba5dc294e134249bcec92adae295988ef180548316821790557f171fc1501a58913a4ce6a2adc689e997f2df06a74c93c1f4e012530824b7f3b380548316821790557f74db307c2d29cc1864b6383b726b903edf8e27468ed28a48a828148cc75b8c7680548316821790557ff8cf7b26baa643eb040635aa54ba83b397689987a0fc6aa71bc739f2649660aa80548316821790557fe47d64bf69de25baa5e1d5a7679686b6743effb4a75b0ace4bf248d553dbcb6080548316821790557f45f16cd46a1d6df245cfa7dd77cf2bbded5bf0f1db526f4990ce7085210d85c380548316821790557f80eeabf0b8e4e9d94cb9b90bb61164b23cc7e4a97caa39b0f509625a047e8f2380548316821790557fe3cdba5cdeddfb718b7a253b760d0891517805856e9797c1a58b320a309e7ea280548316821790557f32fcefafbfeacb5050a33addc3d330c77a3c349ba37362c55d882348105fb31180548316821790557fe2606d7d041ef604a5122cb94c3ca6d570122c82ff1f866546cd197c9f4b3eb780548316821790557ffa813c753872db5de6fbd56badf53a4ff0be3c01c3dc05715f49981bfa203cf680548316821790557fdcf3fd52f5ea925b55fa2b28d94ed8da18f370be1a7f89c00e149bc3f1de0c0080548316821790557fe49cd9158575b847d31ee829aef9a47fff35b53bc53a4a15f8c89ae612bdaa6c80548316821790557f43af30bbbea92b0777fa4eca9e87a00ff4b37bf62ad25ae0b2e45a0167a2254380548316821790557fb718021576dba751db17f5dbb79460fc2d8dc2922b7ddf9bd4bd9f227cc90d2080548316821790557f215208f9a5657cc1f29bc9d6ed28afc6b4cae0808e22dba7f652eef131c1501f80548316821790557fe9d35ddd923469a39bcd917279eb4377a6b01066a60e236eb4d35e96e316510080548316821790557f4bb9fc80c823eb934ae26f9847690cd3b4876b2665b8e60cd8017838e6e4587b80548316821790557fa6dfa1cc8c0a2eddcdcb6cd1279aade9255c4e4bf7b0e3ebef8b04c6d1597f6d80548316821790557f937b2ab0dfe48b15233fe261d8e6eecf99286d0c368a7b2c4555c3a05462504580548316821790557f0261226a679196cceb5a4576cda86e6cb7a9a65ec6b3a59204ed1c934f6fb89980548316821790557f4a7ed932b77813bf4b2995eec466145809f4bebfe7604d6fdc26aeb1d929cd7480548316821790557f1116ac446c74049c3c672033e1d662dfd5e8ec22e105eb180b7fa58d48fdadc580548316821790557fe02bd2e7960ab3f0198fb32f88006ab1d9f295d22abafdbcdf077ed88f62066e80548316821790557f9b07e4c726da75123ef60cb7fb4c59be1d861757e405c3c528696d63dda8bbbe80548316821790557fb19d18638a3e81a004a1dfa0dd9fcb82d76da975489e9450faf08bbe46ff58fc80548316821790557f9006e55f560b924279a83888592386b9599f6f7237f104e6ff18ce8f1c04dccb80548316821790557fd84827c7e65e4722a784736f02766903d3634c96d9783857ea8bc4a638a1738880548316821790557f6fb4a371de2185105fe5486f3e4613ddb95893480297c73e1bdab2ea42af7b0980548316821790557f1bc70b96981ccf3344d90e9241bd7f192a1aeea67485a2a0ccb7eebb6de744e680548316821790557f36d90ee8af666ef9e46b363cf36fa620112543ec641bcd96767fa692b8b5f6ec80548316821790557f7df0cfbac47aca40691c957b67109c4e37e93d539cfa259eeda71fff95242db280548316821790557f75af2cb240e9db37e85556b7677740314fd5fdb97b4c9e6d3ba7c53d7131a8e480548316821790557f76baffac03239fc9b584addeeefc239a37e50b3666299b6ff7442fd1512846f080548316821790557f4907c8b95569a38c3bc1efbb958386119efe3a593f366fb2a04c248d3eca07bf80548316821790557f961ea779c3f5cc70506575c08d25503bcc05cdf60849a67c04a5cbb1ac762e4780548316821790557f011449e520adedfc85f9759b13d3c359361871567db6b7ce760f6941d43feff180548316821790557f1bcc141e489b911bdebcec63863f1756ecd8368a922bc7ee5a6e63cd9881642480548316821790557f7800303cd34e0cfba7cb3e7933edb12fd1b8a258fb66b405ca1539826f85e23280548316821790557f78b355d321a57eaa2c14411b50f8be13667a07fb247488d57c9925dd5a17cb2d80548316821790557f9570e794c324cefc5d4bc19eb0f2b4f5c49fbda57292617bad2b6404ebafabf080548316821790557f85d5987249bba2770e9251ed449331849adfcaa5a9b4ef04a1f685de9a01519280548316821790557fc696b6b9973ae026cfa62dfccc3667a4285e3061cbe58f9b8480039db2d40fef80548316821790557f369079c22ab846385c29bc8a1144a24f66f8899273bbba2a98cd564c17dce38080548316821790557f71c4ad4771533e8521f099030c9d763e747ab34629f60b327798ef6e87469df480548316821790557f584716bc67a262e2951306157d23d063735f3111020f7ae2be344cde0882f22680548316821790557f384d082528da319e74a48ce710b78599072a94e957b0ce0ae9916b2295ecd7fe80548316821790557f5902a215abc142ba3a15b4c713e87d51ac4aa97cb71571a2f7128717cda157bb80548316821790557f6a12c4c024628818af902c9cfaba0ed140ef7d8d865a479b95ca3a06f6eca15e80548316821790557f5f530235fcc19306370123008e90449d8b19f65c2a0c73cd44f144ae5458034e80548316821790557f537a2664aece73ed4b15c5c94d2e6e50687b00cc43e7d8886a3c2cf344a5097780548316821790557fe11bef04a8443d26d778aef342437d4f8a7b820ea3abc4555e2ef277c16eeb4a80548316821790557f468e086cc45ee90f9564f8a743d23ccefb40d8cb3a6623d87cc21fbfab56326380548316821790557f6d62a9fac1706a5cc5f7c5ca8a8564dcd7aaf5386a4ccbb3babf49c8a33f06ff80548316821790557f9e94b5f79578ffe92a546b323e8dce63b8759cb852151e1407ac76fdaa57cfa780548316821790557f7fcc122fd3ffc3d061256ce3477fc36420220843a0bb35523b52374cc80630c480548316821790557f681aee8266e3e1a6556ea1441815889130b60ba74c86de9a1c5d625cbf2a3ea580548316821790557fc3e7d6b2fe71dde408317dfc63e7be7a27b1971dda7e135bda2fcbb40ab0493680548316821790557f4328e9286899f2856f8e62325ae98cf5b139bd4a9222a693bff0bc9078c065fe80548316821790557f07bc9855d616fab539fcd104e5ae9385487e8f1ddf9ec84ad471f11fd9898fcd80548316821790557f78c98288903740269e992e0395fea49b0f13ee241144bca9583892b5d4be2a1b80548316821790557f33a36ed97085c3a46f4fa244db1f01b5b23e41428c5687f8be34e9602e30f93380548316821790557f5c3eba104444f80252620ff4540156dba97a54852fe2fb1bbb0de4072647e95980548316821790557ff3cc88e66b52b56c8a27c4f957b4b7702cfb10c9f9756d4228b96c3bb1539c1f80548316821790557f98b567cda67ec56bb5df064baad0306eac0a426eb0d41a2e14245b0a0fcaf88480548316821790557fa5d60b16a36bc4a5f2d85c38266dd226ce6b28136f64a32b1b4b3132267cf0ca80548316821790557f3d48fc3719afdb92c2b94299d92d5236fa2ab2f67310dce406cac8b3f670589e80548316821790557fdb9bfb5ef42c4c11fae1ebdf6434f9ec8182ceb8c06c5350cd83ae1f0d6b234580548316821790557f0fa054c64fa08b8aeb38d39aef4e95bc0257b4142bf552fedc40a323dff82fb280548316821790557ff7fec9263f72e24274d38e255df9da2e7dbea848ab7d73a21879ddf22a9ada1b80548316821790557fc84eadaa465f212bafd6f7656dc13e4ec25844bbec52754204697d19e880a09880548316821790557305dcf2d321c894e1c53891b1a4a980f96dba5f919092527fe6fce78463b23594c3aadd1768ee8dd2ef07e4d4143b5b964f781f3e37f03fc8805490911690911790556200800e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60018301918390821562007f565791602002820160005b8382111562007f2557835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262007ee5565b801562007f545782816101000a81549060ff021916905560010160208160000104928301926001030262007f25565b505b5062007f6492915062007ff7565b5090565b60028301918390821562007f565791602002820160005b8382111562007fc557835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262007f7f565b801562007f545782816101000a81549063ffffffff021916905560040160208160030104928301926001030262007fc5565b5b8082111562007f64576000815560010162007ff8565b6118aa806200801e6000396000f3fe6080604052600436106101bb5760003560e01c80637f649783116100ec578063adf4a1441161008a578063c3cffe1911610064578063c3cffe19146104ba578063d11711a2146104ea578063e086e5ec146104f2578063f2fde38b1461050757600080fd5b8063adf4a14414610470578063b5545a3c14610485578063c1eb5ddd1461049a57600080fd5b8063983c0a8e116100c6578063983c0a8e146103e1578063a165b9751461040e578063a9c88e7e1461042e578063add290061461044357600080fd5b80637f6497831461038d5780638da5cb5b146103ad578063977b055b146103cb57600080fd5b8063548db1741161015957806360659a921161013357806360659a9214610320578063689e9fbd14610335578063715018a61461036257806378e979251461037757600080fd5b8063548db174146102b1578063583a1a0b146102d15780635c975abb1461030157600080fd5b806333b5b62e1161019557806333b5b62e14610224578063392aa4d51461023a5780634451d89f146102645780634b3e09ed1461027957600080fd5b806323548b8b146101cf5780632c4e722e146101f85780633197cbb61461020e57600080fd5b366101ca576101c8610527565b005b600080fd5b3480156101db57600080fd5b506101e560055481565b6040519081526020015b60405180910390f35b34801561020457600080fd5b506101e560045481565b34801561021a57600080fd5b506101e560075481565b34801561023057600080fd5b506101e560085481565b34801561024657600080fd5b506012546102549060ff1681565b60405190151581526020016101ef565b34801561027057600080fd5b506101c861084a565b34801561028557600080fd5b50600354610299906001600160a01b031681565b6040516001600160a01b0390911681526020016101ef565b3480156102bd57600080fd5b506101c86102cc3660046115c6565b610b7b565b3480156102dd57600080fd5b506102546102ec36600461168b565b600e6020526000908152604090205460ff1681565b34801561030d57600080fd5b50600054600160a01b900460ff16610254565b34801561032c57600080fd5b506101e5610c11565b34801561034157600080fd5b506101e561035036600461168b565b600b6020526000908152604090205481565b34801561036e57600080fd5b506101c8610c83565b34801561038357600080fd5b506101e560065481565b34801561039957600080fd5b506101c86103a83660046115c6565b610cb9565b3480156103b957600080fd5b506000546001600160a01b0316610299565b3480156103d757600080fd5b506101e560095481565b3480156103ed57600080fd5b506101e56103fc36600461168b565b600d6020526000908152604090205481565b34801561041a57600080fd5b506101c86104293660046116a6565b610d4b565b34801561043a57600080fd5b506101c8610de5565b34801561044f57600080fd5b506101e561045e36600461168b565b600c6020526000908152604090205481565b34801561047c57600080fd5b506101c8610fc2565b34801561049157600080fd5b506101c8610ffb565b3480156104a657600080fd5b50600254610299906001600160a01b031681565b3480156104c657600080fd5b506102546104d536600461168b565b600a6020526000908152604090205460ff1681565b6101c8610527565b3480156104fe57600080fd5b506101c8611157565b34801561051357600080fd5b506101c861052236600461168b565b611200565b60026001540361057e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001908155336000908152600e602052604090205460ff161515146105e75760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c69737465640000000000006044820152606401610575565b6006544210156106395760405162461bcd60e51b815260206004820152601760248201527f50726573616c65206e6f742073746172746564207965740000000000000000006044820152606401610575565b60075442111561067b5760405162461bcd60e51b815260206004820152600d60248201526c141c995cd85b1948195b991959609a1b6044820152606401610575565b600854336000818152600c602052604090205434929061069c9084906116de565b10156106ea5760405162461bcd60e51b815260206004820152601f60248201527f4d696e20707572636861736520616d6f756e74206e6f742072656163686564006044820152606401610575565b6009546001600160a01b0382166000908152600c60205260409020546107119084906116de565b111561075f5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e74206578636565646564206d6178207075726368617365000000006044820152606401610575565b60055461076c83476116de565b11156107ba5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206578636565646564206d6178206361700000000000000000006044820152606401610575565b6001600160a01b0381166000908152600b60209081526040808320839055600c909152812080548492906107ef9084906116de565b9091555050600454670de0b6b3a76400009061080b90846116f7565b610815919061170e565b6001600160a01b0382166000908152600d60205260408120805490919061083d9084906116de565b9091555050600180555050565b60026001540361089c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610575565b60026001908155336000908152600e602052604090205460ff161515146109055760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c69737465640000000000006044820152606401610575565b60075442116109565760405162461bcd60e51b815260206004820152601860248201527f50726573616c65206973206e6f7420656e6465642079657400000000000000006044820152606401610575565b60125460ff161561099f5760405162461bcd60e51b8152602060048201526013602482015272141c995cd85b19481a5cc81c99599d5b991959606a1b6044820152606401610575565b336000818152600d60205260409020546109fb5760405162461bcd60e51b815260206004820152601b60248201527f4e6f742070617274696369706174656420696e2070726573616c6500000000006044820152606401610575565b6000805b600b8160ff161015610ac35760108160ff16600b8110610a2157610a21611730565b600891828204019190066004029054906101000a900463ffffffff1663ffffffff164210610ab1576001600160a01b0383166000908152600d6020526040902054606490600f60ff8416600b8110610a7b57610a7b611730565b602081049190910154610a9a9291601f166101000a900460ff166116f7565b610aa4919061170e565b610aae90836116de565b91505b80610abb81611746565b9150506109ff565b506001600160a01b0382166000908152600b6020526040812054610ae79083611765565b905060008111610b2e5760405162461bcd60e51b81526020600482015260126024820152714e6f20746f6b656e7320746f20636c61696d60701b6044820152606401610575565b6001600160a01b0383166000908152600b602052604081208054839290610b569084906116de565b9091555050600354610b72906001600160a01b03168483611298565b50506001805550565b6000546001600160a01b03163314610ba55760405162461bcd60e51b815260040161057590611778565b60005b8151811015610c0d576000600e6000848481518110610bc957610bc9611730565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c05816117ad565b915050610ba8565b5050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e91906117c6565b905090565b6000546001600160a01b03163314610cad5760405162461bcd60e51b815260040161057590611778565b610cb760006112ef565b565b6000546001600160a01b03163314610ce35760405162461bcd60e51b815260040161057590611778565b60005b8151811015610c0d576001600e6000848481518110610d0757610d07611730565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d43816117ad565b915050610ce6565b6000546001600160a01b03163314610d755760405162461bcd60e51b815260040161057590611778565b60065460075411610dda5760405162461bcd60e51b815260206004820152602960248201527f636c6f73652074696d65206d7573742062652067726561746572207468616e206044820152686f70656e2074696d6560b81b6064820152608401610575565b600691909155600755565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161057590611778565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c91906117c6565b11610ec15760405162461bcd60e51b8152602060048201526015602482015274436f6e747261637420686173206e6f20484f524e5960581b6044820152606401610575565b6003546001600160a01b031663a9059cbb610ee46000546001600160a01b031690565b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906117c6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf91906117df565b50565b6000546001600160a01b03163314610fec5760405162461bcd60e51b815260040161057590611778565b6012805460ff19166001179055565b601254339060ff1615156001146110495760405162461bcd60e51b81526020600482015260126024820152712932b33ab7321034b9903737ba1037b832b760711b6044820152606401610575565b6001600160a01b0381166000908152600c60205260409020546110a05760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610575565b6001600160a01b0381166000908152600a602052604090205460ff16156111025760405162461bcd60e51b81526020600482015260166024820152751499599d5b9908185b1c9958591e4818db185a5b595960521b6044820152606401610575565b6001600160a01b0381166000818152600a60209081526040808320805460ff19166001179055600c90915280822054905181156108fc0292818181858888f19350505050158015610c0d573d6000803e3d6000fd5b6000546001600160a01b031633146111815760405162461bcd60e51b815260040161057590611778565b600047116111c75760405162461bcd60e51b8152602060048201526013602482015272086dedce8e4c2c6e840d0c2e640dcde408aa89606b1b6044820152606401610575565b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610fbf573d6000803e3d6000fd5b6000546001600160a01b0316331461122a5760405162461bcd60e51b815260040161057590611778565b6001600160a01b03811661128f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610575565b610fbf816112ef565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526112ea90849061133f565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000611394826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114119092919063ffffffff16565b8051909150156112ea57808060200190518101906113b291906117df565b6112ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610575565b6060611420848460008561142a565b90505b9392505050565b60608247101561148b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610575565b6001600160a01b0385163b6114e25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610575565b600080866001600160a01b031685876040516114fe9190611825565b60006040518083038185875af1925050503d806000811461153b576040519150601f19603f3d011682016040523d82523d6000602084013e611540565b606091505b509150915061155082828661155b565b979650505050505050565b6060831561156a575081611423565b82511561157a5782518084602001fd5b8160405162461bcd60e51b81526004016105759190611841565b634e487b7160e01b600052604160045260246000fd5b80356001600160a01b03811681146115c157600080fd5b919050565b600060208083850312156115d957600080fd5b823567ffffffffffffffff808211156115f157600080fd5b818501915085601f83011261160557600080fd5b81358181111561161757611617611594565b8060051b604051601f19603f8301168101818110858211171561163c5761163c611594565b60405291825284820192508381018501918883111561165a57600080fd5b938501935b8285101561167f57611670856115aa565b8452938501939285019261165f565b98975050505050505050565b60006020828403121561169d57600080fd5b611423826115aa565b600080604083850312156116b957600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b808201808211156116f1576116f16116c8565b92915050565b80820281158282048414176116f1576116f16116c8565b60008261172b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361175c5761175c6116c8565b60010192915050565b818103818111156116f1576116f16116c8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000600182016117bf576117bf6116c8565b5060010190565b6000602082840312156117d857600080fd5b5051919050565b6000602082840312156117f157600080fd5b8151801515811461142357600080fd5b60005b8381101561181c578181015183820152602001611804565b50506000910152565b60008251611837818460208701611801565b9190910192915050565b6020815260008251806020840152611860816040850160208701611801565b601f01601f1916919091016040019291505056fea26469706673582212208eac6ff93ca347b34c95cb0870015a671b5646daf10465865e70e212377d7a9764736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637f649783116100ec578063adf4a1441161008a578063c3cffe1911610064578063c3cffe19146104ba578063d11711a2146104ea578063e086e5ec146104f2578063f2fde38b1461050757600080fd5b8063adf4a14414610470578063b5545a3c14610485578063c1eb5ddd1461049a57600080fd5b8063983c0a8e116100c6578063983c0a8e146103e1578063a165b9751461040e578063a9c88e7e1461042e578063add290061461044357600080fd5b80637f6497831461038d5780638da5cb5b146103ad578063977b055b146103cb57600080fd5b8063548db1741161015957806360659a921161013357806360659a9214610320578063689e9fbd14610335578063715018a61461036257806378e979251461037757600080fd5b8063548db174146102b1578063583a1a0b146102d15780635c975abb1461030157600080fd5b806333b5b62e1161019557806333b5b62e14610224578063392aa4d51461023a5780634451d89f146102645780634b3e09ed1461027957600080fd5b806323548b8b146101cf5780632c4e722e146101f85780633197cbb61461020e57600080fd5b366101ca576101c8610527565b005b600080fd5b3480156101db57600080fd5b506101e560055481565b6040519081526020015b60405180910390f35b34801561020457600080fd5b506101e560045481565b34801561021a57600080fd5b506101e560075481565b34801561023057600080fd5b506101e560085481565b34801561024657600080fd5b506012546102549060ff1681565b60405190151581526020016101ef565b34801561027057600080fd5b506101c861084a565b34801561028557600080fd5b50600354610299906001600160a01b031681565b6040516001600160a01b0390911681526020016101ef565b3480156102bd57600080fd5b506101c86102cc3660046115c6565b610b7b565b3480156102dd57600080fd5b506102546102ec36600461168b565b600e6020526000908152604090205460ff1681565b34801561030d57600080fd5b50600054600160a01b900460ff16610254565b34801561032c57600080fd5b506101e5610c11565b34801561034157600080fd5b506101e561035036600461168b565b600b6020526000908152604090205481565b34801561036e57600080fd5b506101c8610c83565b34801561038357600080fd5b506101e560065481565b34801561039957600080fd5b506101c86103a83660046115c6565b610cb9565b3480156103b957600080fd5b506000546001600160a01b0316610299565b3480156103d757600080fd5b506101e560095481565b3480156103ed57600080fd5b506101e56103fc36600461168b565b600d6020526000908152604090205481565b34801561041a57600080fd5b506101c86104293660046116a6565b610d4b565b34801561043a57600080fd5b506101c8610de5565b34801561044f57600080fd5b506101e561045e36600461168b565b600c6020526000908152604090205481565b34801561047c57600080fd5b506101c8610fc2565b34801561049157600080fd5b506101c8610ffb565b3480156104a657600080fd5b50600254610299906001600160a01b031681565b3480156104c657600080fd5b506102546104d536600461168b565b600a6020526000908152604090205460ff1681565b6101c8610527565b3480156104fe57600080fd5b506101c8611157565b34801561051357600080fd5b506101c861052236600461168b565b611200565b60026001540361057e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001908155336000908152600e602052604090205460ff161515146105e75760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c69737465640000000000006044820152606401610575565b6006544210156106395760405162461bcd60e51b815260206004820152601760248201527f50726573616c65206e6f742073746172746564207965740000000000000000006044820152606401610575565b60075442111561067b5760405162461bcd60e51b815260206004820152600d60248201526c141c995cd85b1948195b991959609a1b6044820152606401610575565b600854336000818152600c602052604090205434929061069c9084906116de565b10156106ea5760405162461bcd60e51b815260206004820152601f60248201527f4d696e20707572636861736520616d6f756e74206e6f742072656163686564006044820152606401610575565b6009546001600160a01b0382166000908152600c60205260409020546107119084906116de565b111561075f5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e74206578636565646564206d6178207075726368617365000000006044820152606401610575565b60055461076c83476116de565b11156107ba5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206578636565646564206d6178206361700000000000000000006044820152606401610575565b6001600160a01b0381166000908152600b60209081526040808320839055600c909152812080548492906107ef9084906116de565b9091555050600454670de0b6b3a76400009061080b90846116f7565b610815919061170e565b6001600160a01b0382166000908152600d60205260408120805490919061083d9084906116de565b9091555050600180555050565b60026001540361089c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610575565b60026001908155336000908152600e602052604090205460ff161515146109055760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c69737465640000000000006044820152606401610575565b60075442116109565760405162461bcd60e51b815260206004820152601860248201527f50726573616c65206973206e6f7420656e6465642079657400000000000000006044820152606401610575565b60125460ff161561099f5760405162461bcd60e51b8152602060048201526013602482015272141c995cd85b19481a5cc81c99599d5b991959606a1b6044820152606401610575565b336000818152600d60205260409020546109fb5760405162461bcd60e51b815260206004820152601b60248201527f4e6f742070617274696369706174656420696e2070726573616c6500000000006044820152606401610575565b6000805b600b8160ff161015610ac35760108160ff16600b8110610a2157610a21611730565b600891828204019190066004029054906101000a900463ffffffff1663ffffffff164210610ab1576001600160a01b0383166000908152600d6020526040902054606490600f60ff8416600b8110610a7b57610a7b611730565b602081049190910154610a9a9291601f166101000a900460ff166116f7565b610aa4919061170e565b610aae90836116de565b91505b80610abb81611746565b9150506109ff565b506001600160a01b0382166000908152600b6020526040812054610ae79083611765565b905060008111610b2e5760405162461bcd60e51b81526020600482015260126024820152714e6f20746f6b656e7320746f20636c61696d60701b6044820152606401610575565b6001600160a01b0383166000908152600b602052604081208054839290610b569084906116de565b9091555050600354610b72906001600160a01b03168483611298565b50506001805550565b6000546001600160a01b03163314610ba55760405162461bcd60e51b815260040161057590611778565b60005b8151811015610c0d576000600e6000848481518110610bc957610bc9611730565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c05816117ad565b915050610ba8565b5050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e91906117c6565b905090565b6000546001600160a01b03163314610cad5760405162461bcd60e51b815260040161057590611778565b610cb760006112ef565b565b6000546001600160a01b03163314610ce35760405162461bcd60e51b815260040161057590611778565b60005b8151811015610c0d576001600e6000848481518110610d0757610d07611730565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d43816117ad565b915050610ce6565b6000546001600160a01b03163314610d755760405162461bcd60e51b815260040161057590611778565b60065460075411610dda5760405162461bcd60e51b815260206004820152602960248201527f636c6f73652074696d65206d7573742062652067726561746572207468616e206044820152686f70656e2074696d6560b81b6064820152608401610575565b600691909155600755565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161057590611778565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c91906117c6565b11610ec15760405162461bcd60e51b8152602060048201526015602482015274436f6e747261637420686173206e6f20484f524e5960581b6044820152606401610575565b6003546001600160a01b031663a9059cbb610ee46000546001600160a01b031690565b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906117c6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf91906117df565b50565b6000546001600160a01b03163314610fec5760405162461bcd60e51b815260040161057590611778565b6012805460ff19166001179055565b601254339060ff1615156001146110495760405162461bcd60e51b81526020600482015260126024820152712932b33ab7321034b9903737ba1037b832b760711b6044820152606401610575565b6001600160a01b0381166000908152600c60205260409020546110a05760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610575565b6001600160a01b0381166000908152600a602052604090205460ff16156111025760405162461bcd60e51b81526020600482015260166024820152751499599d5b9908185b1c9958591e4818db185a5b595960521b6044820152606401610575565b6001600160a01b0381166000818152600a60209081526040808320805460ff19166001179055600c90915280822054905181156108fc0292818181858888f19350505050158015610c0d573d6000803e3d6000fd5b6000546001600160a01b031633146111815760405162461bcd60e51b815260040161057590611778565b600047116111c75760405162461bcd60e51b8152602060048201526013602482015272086dedce8e4c2c6e840d0c2e640dcde408aa89606b1b6044820152606401610575565b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610fbf573d6000803e3d6000fd5b6000546001600160a01b0316331461122a5760405162461bcd60e51b815260040161057590611778565b6001600160a01b03811661128f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610575565b610fbf816112ef565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526112ea90849061133f565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000611394826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114119092919063ffffffff16565b8051909150156112ea57808060200190518101906113b291906117df565b6112ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610575565b6060611420848460008561142a565b90505b9392505050565b60608247101561148b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610575565b6001600160a01b0385163b6114e25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610575565b600080866001600160a01b031685876040516114fe9190611825565b60006040518083038185875af1925050503d806000811461153b576040519150601f19603f3d011682016040523d82523d6000602084013e611540565b606091505b509150915061155082828661155b565b979650505050505050565b6060831561156a575081611423565b82511561157a5782518084602001fd5b8160405162461bcd60e51b81526004016105759190611841565b634e487b7160e01b600052604160045260246000fd5b80356001600160a01b03811681146115c157600080fd5b919050565b600060208083850312156115d957600080fd5b823567ffffffffffffffff808211156115f157600080fd5b818501915085601f83011261160557600080fd5b81358181111561161757611617611594565b8060051b604051601f19603f8301168101818110858211171561163c5761163c611594565b60405291825284820192508381018501918883111561165a57600080fd5b938501935b8285101561167f57611670856115aa565b8452938501939285019261165f565b98975050505050505050565b60006020828403121561169d57600080fd5b611423826115aa565b600080604083850312156116b957600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b808201808211156116f1576116f16116c8565b92915050565b80820281158282048414176116f1576116f16116c8565b60008261172b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361175c5761175c6116c8565b60010192915050565b818103818111156116f1576116f16116c8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000600182016117bf576117bf6116c8565b5060010190565b6000602082840312156117d857600080fd5b5051919050565b6000602082840312156117f157600080fd5b8151801515811461142357600080fd5b60005b8381101561181c578181015183820152602001611804565b50506000910152565b60008251611837818460208701611801565b9190910192915050565b6020815260008251806020840152611860816040850160208701611801565b601f01601f1916919091016040019291505056fea26469706673582212208eac6ff93ca347b34c95cb0870015a671b5646daf10465865e70e212377d7a9764736f6c63430008110033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.