Contract 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb 2

 

Contract Overview

Balance:
0.000003610173151359 BNB

BNB Value:
Less Than $0.01 (@ $315.96/BNB)

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x483619cbad837a7c58ca3ed5dc8fb28cf59a81ed4f43656c9dc4fa6f7f31bc5370998542021-05-03 11:33:5085 days 1 hr ago0x65bc0b3f62db5e9d413bd521dcd7365453cf454c IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00044486
0x172e31725dc29de5839a6ce4e59066ebc8b0303664cdfae46adb1dc54be063da69262222021-04-27 9:24:3291 days 3 hrs ago0x05ae2651d03e4a01f4778d05e4224930047ca1c0 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00315141
0xf35c2fcf573665103631e49c614775d420cd004193b8939f94eae1d91e1b32a967930612021-04-22 17:29:4695 days 19 hrs ago0xf378fc1bd51fbf41108b97b1085efc75913ed702 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00182472
0x266c9c47a8b8be9623797e2ef55e4d50567142440df4ab96602df3c4b71add3267889082021-04-22 13:58:1395 days 22 hrs ago0x5c119d1d77ad7acd630b4abf6b285a45f7379e85 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0005832
0x0215914b2e37d614291436cfb68d5a596f909b3ac826c8fbc0ee895f6daf318967885832021-04-22 13:40:4795 days 22 hrs ago0x1b82e2ee66f98cc453a07c7ea232f4f6eeed2d9f IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0005832
0x704e0259ed79e197f91c0ee5864b0184ca7b49d49d21131f0f721e5cabe6c7d667885112021-04-22 13:36:4595 days 23 hrs ago0x4b65553b6bc8df8ddb23a57bbfb270afc5232bdf IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0009358
0xc22a9c3adf5a29dadf3d001cb4a41ecb8ee9e1468951fe597fc02d75c2279bc567854392021-04-22 11:02:4996 days 1 hr ago0x36367d09bd416648e1f9618a401bb18899bd2f4f IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00034992
0xce36a952c362d26182a7fd33722c730433c4373bfc2b4df4900f50fdeb1d62d467853572021-04-22 10:58:4396 days 1 hr ago0x4980ae5745428c330aa745a625656df99fadd78a IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00106543
0x19796767ac10bf6c3346a3b663dc26edcfde295e14bda968f0b7f5dba262113b67848172021-04-22 10:31:4396 days 2 hrs ago0x4b65553b6bc8df8ddb23a57bbfb270afc5232bdf IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00065562
0x99492f4a1bee8d8857c5dd0c3281a39eb8b8ffa2976947bc7920bca54ff9da7d67848122021-04-22 10:31:2896 days 2 hrs ago0x4b65553b6bc8df8ddb23a57bbfb270afc5232bdf IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00312366
0x36076e6cdf19a33729022407d1f3b6755da1ed4ab2dc4322c3ec7de86eaa361467834482021-04-22 9:23:1496 days 3 hrs ago0x48006db8cffe3732c5e42a340ab0fd7f12c1f6ad IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0005832
0x3466076b7fd1dcb99200251c36271ce96c74c82dcabdf52bdd0638d70882dd9f67793692021-04-22 5:59:1796 days 6 hrs ago0x0d61d3e013ad0eebde19bfec51bc1ae0a50539f7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00165587
0x94b7c80672a8993fcaa9017d300840c4fe4cb3f2c202e5b2b43b098888217e0667761792021-04-22 3:19:4596 days 9 hrs ago0x0bdced95951f1f8367e4be907b5105a8fd8f96a6 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00119155
0xf0281122aed5f1968e676735581cae7879817435c5abfeefd6e04ed11293e0cb67750702021-04-22 2:24:1896 days 10 hrs ago0x4aed2b670dc4ba2df659b7c01404313d64031484 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0009358
0x0ddea0af83a49a928756f976de5a2671421d71ce0d8ba8a76b5ac5073962ce5167750542021-04-22 2:23:3096 days 10 hrs ago0x4aed2b670dc4ba2df659b7c01404313d64031484 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00312366
0x23d3989ac747a2a1653c8156ac81b258d5b6d142e47fce0d39c42f04524426fb67726822021-04-22 0:24:3396 days 12 hrs ago0x1931c45270c421a100274547962d9f13c20bcf67 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00166447
0x1798c9649688d4bf1ef83e2b2fd1ff3eda0034ff83592e41904b29ce718fb40c67717742021-04-21 23:38:4396 days 13 hrs ago0x7b543906c03502ff7123c5b55e82425fa6c851da IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00181329
0x36e132cb234090f381aa15a2c8714beb09c8417a689cffdcc5bd429ab3dcbc9767713972021-04-21 23:19:5296 days 13 hrs ago0xa089744c138ef838b9b70548a3e12f1392dd58f7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00180351
0x94ac8e93065ecfbf428f867a3ddb200d898d3e94c44a07f2d46f253147aecf5667712102021-04-21 23:10:3196 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0006583
0xce5584ce47ded029969c3bcf9ad5fac904d8ed22ae63fedc7abee68c4e5358de67712092021-04-21 23:10:2896 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.0009358
0x3b73725db532593e93814ea6691e1de8f0c04d897e76f39e4d31c9a40de685ee67712092021-04-21 23:10:2896 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00027483
0xaa281d5e894feaf083f39a6fbe1501eb58627051b2b3e14e5b6c4e0278c52fbd67712092021-04-21 23:10:2896 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00027483
0xf87eb2534baa816ecd84425569083b0aad33503e931121f58887b7acfac86a0967712072021-04-21 23:10:2296 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00027483
0xccf9a6b70bd3c10b6bfbe7e0459d7d3ef549b27df2d9e9b6eb649367d34f604667712062021-04-21 23:10:1996 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00027483
0x92c79d8f1945b8cae4cbaeb6747e33d9f03ef1ae064a8739f9ace94dea2c91df67712012021-04-21 23:10:0496 days 13 hrs ago0x47306a94ba78b8714e85c04af4821cc7baa362a7 IN  0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0 BNB0.00313185
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa432c2f3145c916cb0eddcf5f04a5eb33d2eab786a37b727238aa6e5c7b1415267610522021-04-21 14:10:5896 days 22 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000009735244999999 BNB
0xa432c2f3145c916cb0eddcf5f04a5eb33d2eab786a37b727238aa6e5c7b1415267610522021-04-21 14:10:5896 days 22 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000032450816666666 BNB
0x6ad5fd22ac036721518db66670a47e23807cca5db21d65b45d04f3194af8c96d66970422021-04-19 8:13:5599 days 4 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000000308404999999 BNB
0x6ad5fd22ac036721518db66670a47e23807cca5db21d65b45d04f3194af8c96d66970422021-04-19 8:13:5599 days 4 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000001028016666666 BNB
0x1c1c92567f3fbd2338e2ed4ccdaddf08412afeaece3e63a59ccb3cf16200399666678902021-04-18 7:53:48100 days 4 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000030209044999999 BNB
0x1c1c92567f3fbd2338e2ed4ccdaddf08412afeaece3e63a59ccb3cf16200399666678902021-04-18 7:53:48100 days 4 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000100696816666666 BNB
0xd821f782f0c71de2948d6ae1f4a7b5434438aa8643513f537992cb6731e2cb8266535672021-04-17 19:57:21100 days 16 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000415545916666666 BNB
0x7e03be6c3107c098a906e2fcd0d33c812d369c8cf9748ac130689a15b5df00b066489162021-04-17 16:04:47100 days 20 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000884494333333333 BNB
0x64c1d6a80057ef22864f30e6cceccfe17050f30d3a38502418ee89674ef5f69366433942021-04-17 11:28:41101 days 1 hr ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000001894229999999 BNB
0x64c1d6a80057ef22864f30e6cceccfe17050f30d3a38502418ee89674ef5f69366433942021-04-17 11:28:41101 days 1 hr ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000006314099999999 BNB
0x19a0b1ea6b43c48540471107ccf5bc14ede68294d8d1d378240c48db5f63200466425752021-04-17 10:47:44101 days 1 hr ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000028334324999999 BNB
0x19a0b1ea6b43c48540471107ccf5bc14ede68294d8d1d378240c48db5f63200466425752021-04-17 10:47:44101 days 1 hr ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000094447749999999 BNB
0x6cf3a8d52c4bff7dc0d5658dbe08a65aae80abd6699d8eb647674313ef3f796f66419612021-04-17 10:17:02101 days 2 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xb4764ac4474db1e2ea615099231e1ab00728cd7d0.004 BNB
0xdfc463a55e6401e94c1f71fe8fc1d090cf5bd09362918eef943a8f9af1c72c2866418982021-04-17 10:13:53101 days 2 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x92c8590cdb26b369b37fbbfdefd4ac47df88d58a0.0044 BNB
0x0c8c7bf0e08d11eb0db263c0fb27f3c37a2f75d37d12efde38b484d5ce4a76c766418162021-04-17 10:09:47101 days 2 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.0003 BNB
0x0c8c7bf0e08d11eb0db263c0fb27f3c37a2f75d37d12efde38b484d5ce4a76c766418162021-04-17 10:09:47101 days 2 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.001 BNB
0x45cb2ba00e9ae92ae95dac4739ccb937db61f00686cd9f1e7af8ab74ac7b554d66340322021-04-17 3:40:26101 days 8 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.000017159749999999 BNB
0x45cb2ba00e9ae92ae95dac4739ccb937db61f00686cd9f1e7af8ab74ac7b554d66340322021-04-17 3:40:26101 days 8 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x6dcb2f99b50c71d18fd3ffa6fae1346183340c8a0.000057199166666666 BNB
0x632b04be3f94bea68d33463379438f532bf94c498f475125228c63a9e0b5db4266320522021-04-17 2:01:26101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xc36d19dede04c12f69152b151039792d5a590ab20.0137 BNB
0xf46cf3ae4b5ae57c6d1dc3979339b7ded2f03d0aadca683d3ba27ebdf2fa62a066319272021-04-17 1:55:11101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x0d2120f4d9a606431dbd537ca6352051219f97d30.005124 BNB
0xbc46db07dadbb6b23201f905c88c276234b67c8c59581764394f01ae7f39ef1b66319102021-04-17 1:54:20101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x8d63964efc2ed2baa8b05f960fb4aefd61ecad5f0.051052 BNB
0x2dcf0fe924e18efb5ccb6808d038f87b9da7b37b2f868d9508c1715b202eaccf66319092021-04-17 1:54:17101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x1d6331315b81d01e7569ffb74019bf686bdc2a170.054392 BNB
0xe5513eccecda563616748ad46100dbb0cc1fd0618b4ad7eaa80e929fda60a43566318802021-04-17 1:52:50101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xb4764ac4474db1e2ea615099231e1ab00728cd7d0.212 BNB
0x35cc026ee58ea15d75dc983406587cb0f4a9274dee289a0dbdc59359ac9c53ed66318792021-04-17 1:52:47101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0x0d61d3e013ad0eebde19bfec51bc1ae0a50539f70.012 BNB
0x8ed4d2d4e90eadeeed38c1628c73f372010699b24d789836e07f18a1f7c89f1266318702021-04-17 1:52:20101 days 10 hrs ago 0xcd6b97cdcffb6041902f9a6ae89c5961738df6eb0xf9e327f816ec98b10fa9f5fddd496fad3173aeb10.012 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BinanceHives

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-01
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;


library Math {
    
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }

    
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    
    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        
        return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
    }
}

library SafeMath {
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        
        
        
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        
        
        

        uint256 size;
        
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    
    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");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    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");
    }

    
    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);
    }

    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    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);
    }

    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    
    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);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

    
    function transfer(address recipient, uint256 amount) external returns (bool);

    
    function allowance(address owner, address spender) external view returns (uint256);

    
    function approve(address spender, uint256 amount) external returns (bool);

    
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    
    event Transfer(address indexed from, address indexed to, uint256 value);

    
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IMintableToken is IERC20 {

  function mint(address _receiver, uint256 _amount) external;

}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; 
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    
    function owner() public view virtual returns (address) {
        return _owner;
    }

    
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract UserBonus {

    using SafeMath for uint256;

    uint256 public constant BONUS_PERCENTS_PER_WEEK = 1;
    uint256 public constant BONUS_TIME = 1 weeks;

    struct UserBonusData {
        uint256 threadPaid;
        uint256 lastPaidTime;
        uint256 numberOfUsers;
        mapping(address => bool) userRegistered;
        mapping(address => uint256) userPaid;
    }

    UserBonusData public bonus;

    event BonusPaid(uint256 users, uint256 amount);
    event UserAddedToBonus(address indexed user);

    modifier payRepBonusIfNeeded {
        payRepresentativeBonus();
        _;
    }

    constructor() {
        bonus.lastPaidTime = block.timestamp;
    }

    function payRepresentativeBonus() public {
        while (bonus.numberOfUsers > 0 && bonus.lastPaidTime.add(BONUS_TIME) <= block.timestamp) {
            uint256 reward = address(this).balance.mul(BONUS_PERCENTS_PER_WEEK).div(100);
            bonus.threadPaid = bonus.threadPaid.add(reward.div(bonus.numberOfUsers));
            bonus.lastPaidTime = bonus.lastPaidTime.add(BONUS_TIME);
            emit BonusPaid(bonus.numberOfUsers, reward);
        }
    }

    function userRegisteredForBonus(address user) public view returns(bool) {
        return bonus.userRegistered[user];
    }

    function userBonusPaid(address user) public view returns(uint256) {
        return bonus.userPaid[user];
    }

    function userBonusEarned(address user) public view returns(uint256) {
        return bonus.userRegistered[user] ? bonus.threadPaid.sub(bonus.userPaid[user]) : 0;
    }

    function retrieveBonus() public virtual payRepBonusIfNeeded {
        require(bonus.userRegistered[msg.sender], "User not registered for bonus");

        uint256 amount = Math.min(address(this).balance, userBonusEarned(msg.sender));
        bonus.userPaid[msg.sender] = bonus.userPaid[msg.sender].add(amount);
        msg.sender.transfer(amount);
    }

    function _addUserToBonus(address user) internal payRepBonusIfNeeded {
        require(!bonus.userRegistered[user], "User already registered for bonus");

        bonus.userRegistered[user] = true;
        bonus.userPaid[user] = bonus.threadPaid;
        bonus.numberOfUsers = bonus.numberOfUsers.add(1);
        emit UserAddedToBonus(user);
    }
}

contract Claimable is Ownable {

    address public pendingOwner;

    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }

    function renounceOwnership() public view override(Ownable) onlyOwner {
        revert();
    }

    function transferOwnership(address newOwner) public override(Ownable) onlyOwner {
        pendingOwner = newOwner;
    }

    function claimOwnership() public virtual onlyPendingOwner {
        transferOwnership(pendingOwner);
        delete pendingOwner;
    }
}

contract BinanceHives is Claimable, UserBonus {

    using SafeMath for uint256;

    struct Player {
        uint256 registeredDate;
        bool airdropCollected;
        address referrer;
        uint256 balanceHoney;
        uint256 balanceWax;
        uint256 points;
        uint256 medals;
        uint256 qualityLevel;
        uint256 lastTimeCollected;
        uint256 unlockedBee;
        uint256[BEES_COUNT] bees;

        uint256 totalDeposited;
        uint256 totalWithdrawed;
        uint256 referralsTotalDeposited;
        uint256 subreferralsCount;
        address[] referrals;
    }

    uint256 public constant BEES_COUNT = 8;
    uint256 public constant SUPER_BEE_INDEX = BEES_COUNT - 1;
    uint256 public constant TRON_BEE_INDEX = BEES_COUNT - 2;
    uint256 public constant MEDALS_COUNT = 10;
    uint256 public constant QUALITIES_COUNT = 6;
    uint256[BEES_COUNT] public BEES_PRICES = [0e18, 1500e18, 7500e18, 30000e18, 75000e18, 250000e18, 750000e18, 100000e18];
    uint256[BEES_COUNT] public BEES_LEVELS_PRICES = [0e18, 0e18, 11250e18, 45000e18, 112500e18, 375000e18, 1125000e18, 0];
    uint256[BEES_COUNT] public BEES_MONTHLY_PERCENTS = [0, 220, 223, 226, 229, 232, 235, 333];
    uint256[MEDALS_COUNT] public MEDALS_POINTS = [0e18, 50000e18, 190000e18, 510000e18, 1350000e18, 3225000e18, 5725000e18, 8850000e18, 12725000e18, 23500000e18];
    uint256[MEDALS_COUNT] public MEDALS_REWARDS = [0e18, 3500e18, 10500e18, 24000e18, 65000e18, 140000e18, 185000e18, 235000e18, 290000e18, 800000e18];
    uint256[QUALITIES_COUNT] public QUALITY_HONEY_PERCENT = [60, 62, 64, 66, 68, 70];
    uint256[QUALITIES_COUNT] public QUALITY_PRICE = [0e18, 15000e18, 50000e18, 120000e18, 250000e18, 400000e18];

    uint256 public constant COINS_PER_BNB = 250000;
    uint256 public constant MAX_BEES_PER_TARIFF = 32;
    uint256 public constant FIRST_BEE_AIRDROP_AMOUNT = 500e18;
    uint256 public constant ADMIN_PERCENT = 10;
    uint256 public constant HONEY_DISCOUNT_PERCENT = 10;
    uint256 public constant SUPERBEE_PERCENT_UNLOCK = 5;
    uint256 public constant SUPERBEE_PERCENT_LOCK = 5;
    uint256 public constant SUPER_BEE_BUYER_PERIOD = 7 days;
    uint256[] public REFERRAL_PERCENT_PER_LEVEL = [5, 2, 1, 1, 1];
    uint256[] public REFERRAL_POINT_PERCENT = [50, 25, 0, 0, 0];

    uint256 public maxBalance;
    uint256 public maxBalanceClose;
    uint256 public totalPlayers;
    uint256 public totalDeposited;
    uint256 public totalWithdrawed;
    uint256 public totalBeesBought;
    mapping(address => Player) public players;

    bool public isSuperBeeUnlocked = false;

    uint256 constant public TIME_STEP = 1 days;

    address public tokenContractAddress;
    address public flipTokenContractAddress;
    uint256 public TOKENS_EMISSION = 100;

    struct Stake {
      uint256 amount;
      uint256 checkpoint;
      uint256 accumulatedReward;
      uint256 withdrawnReward;
    }
    mapping (address => Stake) public stakes;
    uint256 public totalStake;

    uint256 public MULTIPLIER = 1;

    address payable public constant LIQUIDITY_ADDRESS = 0xf9e327F816eC98B10fA9f5fddd496fAd3173AeB1;
    uint256 public constant LIQUIDITY_DEPOSIT_PERCENT = 3; 

    event Registered(address indexed user, address indexed referrer);
    event Deposited(address indexed user, uint256 amount);
    event Withdrawed(address indexed user, uint256 amount);
    event ReferrerPaid(address indexed user, address indexed referrer, uint256 indexed level, uint256 amount);
    event MedalAwarded(address indexed user, uint256 indexed medal);
    event QualityUpdated(address indexed user, uint256 indexed quality);
    event RewardCollected(address indexed user, uint256 honeyReward, uint256 waxReward);
    event BeeUnlocked(address indexed user, uint256 bee);
    event BeesBought(address indexed user, uint256 bee, uint256 count);

    
    event Staked(address indexed user, uint256 amount);
    event Unstaked(address indexed user, uint256 amount);
    event TokensRewardWithdrawn(address indexed user, uint256 reward);

    constructor() {
        _register(owner(), address(0));
    }

    receive() external payable {
        if (msg.value == 0) {
            if (players[msg.sender].registeredDate > 0) {
                collect();
            }
        } else {
            deposit(address(0));
        }
    }

    function playerBees(address who) public view returns(uint256[BEES_COUNT] memory) {
        return players[who].bees;
    }

    function changeSuperBeeStatus() public returns(bool) {
      if (address(this).balance <= maxBalance.mul(100 - SUPERBEE_PERCENT_UNLOCK).div(100)) {
        isSuperBeeUnlocked = true;
        maxBalanceClose = maxBalance;
      }

      if (address(this).balance >= maxBalanceClose.mul(100 + SUPERBEE_PERCENT_LOCK).div(100)) {
        isSuperBeeUnlocked = false;
      }

      return isSuperBeeUnlocked;
    }

    function referrals(address user) public view returns(address[] memory) {
        return players[user].referrals;
    }

    function referrerOf(address user, address ref) internal view returns(address) {
        if (players[user].registeredDate == 0 && ref != user) {
            return ref;
        }
        return players[user].referrer;
    }

    function deposit(address ref) public payable payRepBonusIfNeeded {
        require(players[ref].registeredDate != 0, "Referrer address should be registered");

        Player storage player = players[msg.sender];
        address refAddress = referrerOf(msg.sender, ref);

        require((msg.value == 0) != player.registeredDate > 0, "Send 0 for registration");

        
        if (player.registeredDate == 0) {
            _register(msg.sender, refAddress);
        }

        collect();

        
        uint256 wax = msg.value.mul(COINS_PER_BNB);
        player.balanceWax = player.balanceWax.add(wax);
        player.totalDeposited = player.totalDeposited.add(msg.value);
        totalDeposited = totalDeposited.add(msg.value);
        player.points = player.points.add(wax);
        emit Deposited(msg.sender, msg.value);

        

        _distributeFees(msg.sender, wax, msg.value, refAddress);

        _addToBonusIfNeeded(msg.sender);

        uint256 adminWithdrawed = players[owner()].totalWithdrawed;
        maxBalance = Math.max(maxBalance, address(this).balance.add(adminWithdrawed));
        if (maxBalance >= maxBalanceClose.mul(100 + SUPERBEE_PERCENT_LOCK).div(100)) {
          isSuperBeeUnlocked = false;
        }

        
        if (Address.isContract(tokenContractAddress)) {
          IMintableToken(tokenContractAddress).mint(msg.sender, msg.value.mul(TOKENS_EMISSION));
        }
    }

    function withdraw(uint256 amount) public {
        Player storage player = players[msg.sender];

        collect();

        uint256 value = amount.div(COINS_PER_BNB);
        require(value > 0, "Trying to withdraw too small");
        player.balanceHoney = player.balanceHoney.sub(amount);
        player.totalWithdrawed = player.totalWithdrawed.add(value);
        totalWithdrawed = totalWithdrawed.add(value);
        msg.sender.transfer(value);
        emit Withdrawed(msg.sender, value);

        changeSuperBeeStatus();
    }

    function collect() public payRepBonusIfNeeded {
        Player storage player = players[msg.sender];
        require(player.registeredDate > 0, "Not registered yet");

        if (userBonusEarned(msg.sender) > 0) {
            retrieveBonus();
        }

        (uint256 balanceHoney, uint256 balanceWax) = instantBalance(msg.sender);
        emit RewardCollected(
            msg.sender,
            balanceHoney.sub(player.balanceHoney),
            balanceWax.sub(player.balanceWax)
        );

        if (!player.airdropCollected && player.registeredDate < block.timestamp) {
            player.airdropCollected = true;
        }

        player.balanceHoney = balanceHoney;
        player.balanceWax = balanceWax;
        player.lastTimeCollected = block.timestamp;
    }

    function instantBalance(address account)
        public
        view
        returns(
            uint256 balanceHoney,
            uint256 balanceWax
        )
    {
        Player storage player = players[account];
        if (player.registeredDate == 0) {
            return (0, 0);
        }

        balanceHoney = player.balanceHoney;
        balanceWax = player.balanceWax;

        uint256 collected = earned(account);
        if (!player.airdropCollected && player.registeredDate < block.timestamp) {
            collected = collected.sub(FIRST_BEE_AIRDROP_AMOUNT);
            balanceWax = balanceWax.add(FIRST_BEE_AIRDROP_AMOUNT);
        }

        uint256 honeyReward = collected.mul(QUALITY_HONEY_PERCENT[player.qualityLevel]).div(100);
        uint256 waxReward = collected.sub(honeyReward);

        balanceHoney = balanceHoney.add(honeyReward);
        balanceWax = balanceWax.add(waxReward);
    }

    function unlock(uint256 bee) public payable payRepBonusIfNeeded {
        Player storage player = players[msg.sender];

        if (msg.value > 0) {
            deposit(address(0));
        }

        collect();

        require(bee < SUPER_BEE_INDEX, "No more levels to unlock"); 
        require(player.bees[bee - 1] == MAX_BEES_PER_TARIFF, "Prev level must be filled");
        require(bee == player.unlockedBee + 1, "Trying to unlock wrong bee type");

        if (bee == TRON_BEE_INDEX) {
            require(player.medals >= 9);
        }
        _payWithWaxAndHoney(msg.sender, BEES_LEVELS_PRICES[bee]);
        player.unlockedBee = bee;
        player.bees[bee] = 1;
        emit BeeUnlocked(msg.sender, bee);
    }

    function buyBees(uint256 bee, uint256 count) public payable payRepBonusIfNeeded {
        Player storage player = players[msg.sender];

        if (msg.value > 0) {
            deposit(address(0));
        }

        collect();

        require(bee > 0 && bee < BEES_COUNT, "Don't try to buy bees of type 0");
        if (bee == SUPER_BEE_INDEX) {
            require(changeSuperBeeStatus(), "SuperBee is not unlocked yet");
            require(block.timestamp.sub(player.registeredDate) < SUPER_BEE_BUYER_PERIOD, "You should be registered less than 7 days ago");
        } else {
            require(bee <= player.unlockedBee, "This bee type not unlocked yet");
        }

        require(player.bees[bee].add(count) <= MAX_BEES_PER_TARIFF);
        player.bees[bee] = player.bees[bee].add(count);
        totalBeesBought = totalBeesBought.add(count);
        uint256 honeySpent = _payWithWaxAndHoney(msg.sender, BEES_PRICES[bee].mul(count));

        _distributeFees(msg.sender, honeySpent, 0, referrerOf(msg.sender, address(0)));

        emit BeesBought(msg.sender, bee, count);
    }

    function updateQualityLevel() public payRepBonusIfNeeded {
        Player storage player = players[msg.sender];

        collect();

        require(player.qualityLevel < QUALITIES_COUNT - 1);
        _payWithHoneyOnly(msg.sender, QUALITY_PRICE[player.qualityLevel + 1]);
        player.qualityLevel++;
        emit QualityUpdated(msg.sender, player.qualityLevel);
    }

    function earned(address user) public view returns(uint256) {
        Player storage player = players[user];
        if (player.registeredDate == 0) {
            return 0;
        }

        uint256 total = 0;
        for (uint i = 1; i < BEES_COUNT; i++) {
            total = total.add(
                player.bees[i].mul(BEES_PRICES[i]).mul(BEES_MONTHLY_PERCENTS[i]).div(100)
            );
        }

        return total
            .mul(block.timestamp.sub(player.lastTimeCollected))
            .div(30 days)
            .add(player.airdropCollected || player.registeredDate == block.timestamp ? 0 : FIRST_BEE_AIRDROP_AMOUNT);
    }

    function collectMedals(address user) public payRepBonusIfNeeded {
        Player storage player = players[user];

        collect();

        for (uint i = player.medals; i < MEDALS_COUNT; i++) {
            if (player.points >= MEDALS_POINTS[i]) {
                player.balanceWax = player.balanceWax.add(MEDALS_REWARDS[i]);
                player.medals = i + 1;
                emit MedalAwarded(user, i + 1);
            }
        }
    }

    function retrieveBonus() public override(UserBonus) {
        totalWithdrawed = totalWithdrawed.add(userBonusEarned(msg.sender));
        super.retrieveBonus();
    }

    function claimOwnership() public override(Claimable) {
        super.claimOwnership();
        _register(owner(), address(0));
    }

    function _distributeFees(address user, uint256 wax, uint256 deposited, address refAddress) internal {
        
        address(uint160(owner())).transfer(wax * ADMIN_PERCENT / 100 / COINS_PER_BNB);

        
        LIQUIDITY_ADDRESS.transfer(wax * LIQUIDITY_DEPOSIT_PERCENT / 100 / COINS_PER_BNB);

        
        if (refAddress != address(0)) {
            Player storage referrer = players[refAddress];
            referrer.referralsTotalDeposited = referrer.referralsTotalDeposited.add(deposited);
            _addToBonusIfNeeded(refAddress);

            
            address to = refAddress;
            for (uint i = 0; to != address(0) && i < REFERRAL_PERCENT_PER_LEVEL.length; i++) {
                uint256 reward = wax.mul(REFERRAL_PERCENT_PER_LEVEL[i]).div(100);
                players[to].balanceHoney = players[to].balanceHoney.add(reward);
                players[to].points = players[to].points.add(wax.mul(REFERRAL_POINT_PERCENT[i]).div(100));
                emit ReferrerPaid(user, to, i + 1, reward);
                

                to = players[to].referrer;
            }
        }
    }

    function _register(address user, address refAddress) internal {
        Player storage player = players[user];

        player.registeredDate = block.timestamp;
        player.bees[0] = MAX_BEES_PER_TARIFF;
        player.unlockedBee = 1;
        player.lastTimeCollected = block.timestamp;
        totalBeesBought = totalBeesBought.add(MAX_BEES_PER_TARIFF);
        totalPlayers++;

        if (refAddress != address(0)) {
            player.referrer = refAddress;
            players[refAddress].referrals.push(user);

            if (players[refAddress].referrer != address(0)) {
                players[players[refAddress].referrer].subreferralsCount++;
            }

            _addToBonusIfNeeded(refAddress);
        }
        emit Registered(user, refAddress);
    }

    function _payWithHoneyOnly(address user, uint256 amount) internal {
        Player storage player = players[user];
        player.balanceHoney = player.balanceHoney.sub(amount);
    }

    function _payWithWaxOnly(address user, uint256 amount) internal {
        Player storage player = players[user];
        player.balanceWax = player.balanceWax.sub(amount);
    }

    function _payWithWaxAndHoney(address user, uint256 amount) internal returns(uint256) {
        Player storage player = players[user];

        uint256 wax = Math.min(amount, player.balanceWax);
        uint256 honey = amount.sub(wax).mul(100 - HONEY_DISCOUNT_PERCENT).div(100);

        player.balanceWax = player.balanceWax.sub(wax);
        _payWithHoneyOnly(user, honey);

        return honey;
    }

    function _addToBonusIfNeeded(address user) internal {
        if (user != address(0) && !bonus.userRegistered[user]) {
            Player storage player = players[user];

            if (player.totalDeposited >= 5 ether &&
                player.referrals.length >= 10 &&
                player.referralsTotalDeposited >= 50 ether)
            {
                _addUserToBonus(user);
            }
        }
    }

    function turn() external {
      
    }

    function turnAmount() external payable {
      msg.sender.transfer(msg.value);
    }

    

    function setTokenContractAddress(address _tokenContractAddress, address _flipTokenContractAddress) external onlyOwner {
      require(tokenContractAddress == address(0x0), "Token contract already configured");
      require(Address.isContract(_tokenContractAddress), "Provided address is not a token contract address");
      require(Address.isContract(_flipTokenContractAddress), "Provided address is not a flip token contract address");

      tokenContractAddress = _tokenContractAddress;
      flipTokenContractAddress = _flipTokenContractAddress;
    }

    function updateMultiplier(uint256 multiplier) public onlyOwner {
      require(multiplier > 0 && multiplier <= 50, "Multiplier is out of range");

      MULTIPLIER = multiplier;
    }

    function stake(uint256 _amount) external returns (bool) {
      require(_amount > 0, "Invalid tokens amount value");
      require(Address.isContract(flipTokenContractAddress), "Provided address is not a flip token contract address");

      if (!IERC20(flipTokenContractAddress).transferFrom(msg.sender, address(this), _amount)) {
        return false;
      }

      uint256 reward = availableReward(msg.sender);
      if (reward > 0) {
        stakes[msg.sender].accumulatedReward = stakes[msg.sender].accumulatedReward.add(reward);
      }

      stakes[msg.sender].amount = stakes[msg.sender].amount.add(_amount);
      stakes[msg.sender].checkpoint = block.timestamp;

      totalStake = totalStake.add(_amount);

      emit Staked(msg.sender, _amount);

      return true;
    }

    function availableReward(address userAddress) public view returns (uint256) {
      return stakes[userAddress].amount
        .mul(MULTIPLIER)
        .mul(block.timestamp.sub(stakes[userAddress].checkpoint))
        .div(TIME_STEP);
    }

    function withdrawTokensReward() external {
      uint256 reward = stakes[msg.sender].accumulatedReward
        .add(availableReward(msg.sender));

      if (reward > 0) {
        
        if (Address.isContract(tokenContractAddress)) {
          stakes[msg.sender].checkpoint = block.timestamp;
          stakes[msg.sender].accumulatedReward = 0;
          stakes[msg.sender].withdrawnReward = stakes[msg.sender].withdrawnReward.add(reward);

          IMintableToken(tokenContractAddress).mint(msg.sender, reward);

          emit TokensRewardWithdrawn(msg.sender, reward);
        }
      }
    }

    function unstake(uint256 _amount) external {
      require(_amount > 0, "Invalid tokens amount value");
      require(_amount <= stakes[msg.sender].amount, "Not enough tokens on the stake balance");
      require(Address.isContract(flipTokenContractAddress), "Provided address is not a flip token contract address");

      uint256 reward = availableReward(msg.sender);
      if (reward > 0) {
        stakes[msg.sender].accumulatedReward = stakes[msg.sender].accumulatedReward.add(reward);
      }

      stakes[msg.sender].amount = stakes[msg.sender].amount.sub(_amount);
      stakes[msg.sender].checkpoint = block.timestamp;

      totalStake = totalStake.sub(_amount);

      require(IERC20(flipTokenContractAddress).transfer(msg.sender, _amount));

      emit Unstaked(msg.sender, _amount);
    }

    function getStakingStatistics(address userAddress) public view returns (uint256[5] memory stakingStatistics) {
      stakingStatistics[0] = availableReward(userAddress);
      stakingStatistics[1] = stakes[userAddress].accumulatedReward;
      stakingStatistics[2] = stakes[userAddress].withdrawnReward;
      stakingStatistics[3] = stakes[userAddress].amount; 
      stakingStatistics[4] = stakes[userAddress].amount.mul(MULTIPLIER); 
    }

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bee","type":"uint256"}],"name":"BeeUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"}],"name":"BeesBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"users","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BonusPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"medal","type":"uint256"}],"name":"MedalAwarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"quality","type":"uint256"}],"name":"QualityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"level","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReferrerPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"honeyReward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"waxReward","type":"uint256"}],"name":"RewardCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"TokensRewardWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"UserAddedToBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawed","type":"event"},{"inputs":[],"name":"ADMIN_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BEES_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"BEES_LEVELS_PRICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"BEES_MONTHLY_PERCENTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"BEES_PRICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BONUS_PERCENTS_PER_WEEK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BONUS_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COINS_PER_BNB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FIRST_BEE_AIRDROP_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HONEY_DISCOUNT_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_ADDRESS","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_DEPOSIT_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BEES_PER_TARIFF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MEDALS_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"MEDALS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"MEDALS_REWARDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUALITIES_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"QUALITY_HONEY_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"QUALITY_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_PERCENT_PER_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_POINT_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPERBEE_PERCENT_LOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPERBEE_PERCENT_UNLOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_BEE_BUYER_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_BEE_INDEX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKENS_EMISSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRON_BEE_INDEX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"availableReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonus","outputs":[{"internalType":"uint256","name":"threadPaid","type":"uint256"},{"internalType":"uint256","name":"lastPaidTime","type":"uint256"},{"internalType":"uint256","name":"numberOfUsers","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bee","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"buyBees","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"changeSuperBeeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"collectMedals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getStakingStatistics","outputs":[{"internalType":"uint256[5]","name":"stakingStatistics","type":"uint256[5]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"instantBalance","outputs":[{"internalType":"uint256","name":"balanceHoney","type":"uint256"},{"internalType":"uint256","name":"balanceWax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSuperBeeUnlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalanceClose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payRepresentativeBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"playerBees","outputs":[{"internalType":"uint256[8]","name":"","type":"uint256[8]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"players","outputs":[{"internalType":"uint256","name":"registeredDate","type":"uint256"},{"internalType":"bool","name":"airdropCollected","type":"bool"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"balanceHoney","type":"uint256"},{"internalType":"uint256","name":"balanceWax","type":"uint256"},{"internalType":"uint256","name":"points","type":"uint256"},{"internalType":"uint256","name":"medals","type":"uint256"},{"internalType":"uint256","name":"qualityLevel","type":"uint256"},{"internalType":"uint256","name":"lastTimeCollected","type":"uint256"},{"internalType":"uint256","name":"unlockedBee","type":"uint256"},{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalWithdrawed","type":"uint256"},{"internalType":"uint256","name":"referralsTotalDeposited","type":"uint256"},{"internalType":"uint256","name":"subreferralsCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"referrals","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"retrieveBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContractAddress","type":"address"},{"internalType":"address","name":"_flipTokenContractAddress","type":"address"}],"name":"setTokenContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"checkpoint","type":"uint256"},{"internalType":"uint256","name":"accumulatedReward","type":"uint256"},{"internalType":"uint256","name":"withdrawnReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBeesBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPlayers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawed","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":[],"name":"turn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnAmount","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bee","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"multiplier","type":"uint256"}],"name":"updateMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateQualityLevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userBonusEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userBonusPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userRegisteredForBonus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTokensReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051806101000160405280600069ffffffffffffffffffff168152602001685150ae84a8cdf0000069ffffffffffffffffffff1681526020016901969368974c05b0000069ffffffffffffffffffff16815260200169065a4da25d3016c0000069ffffffffffffffffffff168152602001690fe1c215e8f838e0000069ffffffffffffffffffff1681526020016934f086f3b33b6840000069ffffffffffffffffffff168152602001699ed194db19b238c0000069ffffffffffffffffffff16815260200169152d02c7e14af680000069ffffffffffffffffffff168152506007906008620000f6929190620010fc565b50604051806101000160405280600069ffffffffffffffffffff168152602001600069ffffffffffffffffffff168152602001690261dd1ce2f20888000069ffffffffffffffffffff16815260200169098774738bc82220000069ffffffffffffffffffff1681526020016917d2a320dd745550000069ffffffffffffffffffff168152602001694f68ca6d8cd91c60000069ffffffffffffffffffff16815260200169ee3a5f48a68b5520000069ffffffffffffffffffff168152602001600069ffffffffffffffffffff16815250600f906008620001d8929190620010fc565b50604051806101000160405280600061ffff16815260200160dc61ffff16815260200160df61ffff16815260200160e261ffff16815260200160e561ffff16815260200160e861ffff16815260200160eb61ffff16815260200161014d61ffff1681525060179060086200024e9291906200114f565b5060405180610140016040528060006affffffffffffffffffffff168152602001690a968163f0a57b4000006affffffffffffffffffffff16815260200169283bebaef8db3ac000006affffffffffffffffffffff168152602001696bff27c8303182c000006affffffffffffffffffffff1681526020016a011ddfa58a6173ffc000006affffffffffffffffffffff1681526020016a02aaeb99ae21b18da000006affffffffffffffffffffff1681526020016a04bc50df332203a02000006affffffffffffffffffffff1681526020016a07520f7619626a374000006affffffffffffffffffffff1681526020016a0a869fa1dabc83072000006affffffffffffffffffffff1681526020016a1370518d7bcfd0478000006affffffffffffffffffffff16815250601f90600a6200038a9291906200119a565b50604051806101400160405280600069ffffffffffffffffffff16815260200168bdbc41e0348b30000069ffffffffffffffffffff16815260200169023934c5a09da190000069ffffffffffffffffffff1681526020016905150ae84a8cdf00000069ffffffffffffffffffff168152602001690dc3a8351f3d86a0000069ffffffffffffffffffff168152602001691da56a4b0835bf80000069ffffffffffffffffffff16815260200169272cdebe93fde1a0000069ffffffffffffffffffff1681526020016931c3602284a35ce0000069ffffffffffffffffffff168152602001693d68ee76da263140000069ffffffffffffffffffff16815260200169a968163f0a57b400000069ffffffffffffffffffff16815250602990600a620004b5929190620011ee565b506040518060c00160405280603c60ff168152602001603e60ff168152602001604060ff168152602001604260ff168152602001604460ff168152602001604660ff1681525060339060066200050d92919062001241565b506040518060c00160405280600069ffffffffffffffffffff16815260200169032d26d12e980b60000069ffffffffffffffffffff168152602001690a968163f0a57b40000069ffffffffffffffffffff168152602001691969368974c05b00000069ffffffffffffffffffff1681526020016934f086f3b33b6840000069ffffffffffffffffffff1681526020016954b40b1f852bda00000069ffffffffffffffffffff168152506039906006620005c89291906200128b565b506040518060a00160405280600560ff168152602001600260ff168152602001600160ff168152602001600160ff168152602001600160ff16815250603f90600562000616929190620012de565b506040518060a00160405280603260ff168152602001601960ff168152602001600060ff168152602001600060ff168152602001600060ff16815250604090600562000664929190620012de565b506000604860006101000a81548160ff0219169083151502179055506064604a556001604d553480156200069757600080fd5b506000620006aa6200077a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3504260026001018190555062000774620007666200078260201b60201c565b6000620007ab60201b60201c565b62001354565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504281600001819055506020816009016000600881106200080a57fe5b0181905550600181600801819055504281600701819055506200083f602060465462000b2f60201b620044fc1790919060201c565b604681905550604360008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000ad057818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601501839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000abe5760476000604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601401600081548092919060010191905055505b62000acf8262000bb860201b60201c565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e5560405160405180910390a3505050565b60008082840190508381101562000bae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801562000c435750600260030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1562000ce5576000604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050674563918244f4000081601101541015801562000cb15750600a816015018054905010155b801562000ccb57506802b5e3af16b1880000816013015410155b1562000ce35762000ce28262000ce860201b60201c565b5b505b50565b62000cf862000eb460201b60201c565b600260030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000da0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062006bcf6021913960400191505060405180910390fd5b6001600260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600260000154600260040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e666001600280015462000b2f60201b620044fc1790919060201c565b60028001819055508073ffffffffffffffffffffffffffffffffffffffff167fffe88a5f59af245d336238ae39a54e562c15024f255db787524f9abd61c8765a60405160405180910390a250565b5b6000600280015411801562000eeb57504262000ee862093a8060026001015462000b2f60201b620044fc1790919060201c565b11155b1562000fe457600062000f28606462000f1460014762000fe660201b620045841790919060201c565b6200107160201b6200460a1790919060201c565b905062000f6662000f4c6002800154836200107160201b6200460a1790919060201c565b60026000015462000b2f60201b620044fc1790919060201c565b60026000018190555062000f9162093a8060026001015462000b2f60201b620044fc1790919060201c565b6002600101819055507f51e794b4ff7ffc1b303e757fa6fc3d0b3e162556cc78d07914238fe3c3f96d8f600280015482604051808381526020018281526020019250505060405180910390a15062000eb5565b565b60008083141562000ffb57600090506200106b565b60008284029050828482816200100d57fe5b041462001066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062006bf06021913960400191505060405180910390fd5b809150505b92915050565b6000808211620010e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381620010f357fe5b04905092915050565b82600881019282156200113c579160200282015b828111156200113b578251829069ffffffffffffffffffff1690559160200191906001019062001110565b5b5090506200114b919062001335565b5090565b826008810192821562001187579160200282015b8281111562001186578251829061ffff1690559160200191906001019062001163565b5b50905062001196919062001335565b5090565b82600a8101928215620011db579160200282015b82811115620011da57825182906affffffffffffffffffffff16905591602001919060010190620011ae565b5b509050620011ea919062001335565b5090565b82600a81019282156200122e579160200282015b828111156200122d578251829069ffffffffffffffffffff1690559160200191906001019062001202565b5b5090506200123d919062001335565b5090565b826006810192821562001278579160200282015b8281111562001277578251829060ff1690559160200191906001019062001255565b5b50905062001287919062001335565b5090565b8260068101928215620012cb579160200282015b82811115620012ca578251829069ffffffffffffffffffff169055916020019190600101906200129f565b5b509050620012da919062001335565b5090565b82805482825590600052602060002090810192821562001322579160200282015b8281111562001321578251829060ff16905591602001919060010190620012ff565b5b50905062001331919062001335565b5090565b5b808211156200135057600081600090555060010162001336565b5090565b61586b80620013646000396000f3fe6080604052600436106104295760003560e01c806382dba44311610229578063be6c588a1161012e578063e2eb41ff116100b6578063f340fa011161007a578063f340fa0114611523578063f60cdcf614611567578063f7620b1614611592578063fc9ba03a146115e1578063ff50abdc1461166e5761049d565b8063e2eb41ff14611377578063e30c39781461144f578063e522538114611490578063eeb851a2146114a7578063f2fde38b146114d25761049d565b8063cfbeb83e116100fd578063cfbeb83e14611266578063d92780d414611291578063d9c282f0146112bc578063dacfbd7914611321578063dec107d11461134c5761049d565b8063be6c588a1461112f578063bfaed58a1461115a578063bfd3dc93146111ab578063c7d88b05146111fa5761049d565b80639ca423b3116101b1578063a694fc3a11610180578063a694fc3a14610fea578063b2da61b41461103b578063b5affb0514611066578063b74126cc146110b5578063b913ee4f146110e05761049d565b80639ca423b314610ed75780639e95452b14610f7d578063a155b1d414610f94578063a35bc9af14610fbf5761049d565b80638b299903116101f85780638b29990314610e335780638da5cb5b14610e4a5780639124a42e14610e8b5780639a2d32f914610ea25780639c291f8d14610ecd5761049d565b806382dba44314610d3357806382edaf9414610d60578063894af78314610da15780638b0e9f3f14610e085761049d565b8063378e386d1161032f5780635ec1ddfc116102b7578063715018a611610286578063715018a614610c625780637239289014610c7957806373ad468a14610ca457806375b4d78c14610ccf5780637e99077214610d085761049d565b80635ec1ddfc14610b8d5780635ffe614614610bb85780636198e33914610bf3578063643d70b614610c215761049d565b80634cd906fe116102fe5780634cd906fe14610a805780634e71e0c814610ac1578063506d58c214610ad85780635708c81b14610b495780635b37309214610b765761049d565b8063378e386d146109a3578063435f220c146109ce57806346a83785146109f95780634ab0cac914610a315761049d565b806321f45653116103b25780632e1a7d4d116103815780632e1a7d4d146108825780633128aa86146108bd57806332bc298c1461092257806336fe15e61461094d5780633761520c146109785761049d565b806321f4565314610740578063222562d6146107cd5780632ab291c1146107f85780632e17de78146108475761049d565b8063066fd899116103f9578063066fd8991461057457806310f230dc146105d9578063127fcac71461062857806316934fc41461067757806321d378f5146106f15761049d565b80628cc262146104a25780630486916d146105075780630542061e14610532578063059f8b16146105495761049d565b3661049d576000341415610490576000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561048b5761048a611699565b5b61049b565b61049a600061186f565b5b005b600080fd5b3480156104ae57600080fd5b506104f1600480360360208110156104c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb6565b6040518082815260200191505060405180910390f35b34801561051357600080fd5b5061051c611e37565b6040518082815260200191505060405180910390f35b34801561053e57600080fd5b50610547611e3c565b005b34801561055557600080fd5b5061055e611f21565b6040518082815260200191505060405180910390f35b34801561058057600080fd5b506105c36004803603602081101561059757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f27565b6040518082815260200191505060405180910390f35b3480156105e557600080fd5b50610612600480360360208110156105fc57600080fd5b8101908080359060200190929190505050612002565b6040518082815260200191505060405180910390f35b34801561063457600080fd5b506106616004803603602081101561064b57600080fd5b810190808035906020019092919050505061201d565b6040518082815260200191505060405180910390f35b34801561068357600080fd5b506106c66004803603602081101561069a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612038565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156106fd57600080fd5b5061072a6004803603602081101561071457600080fd5b8101908080359060200190929190505050612068565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b5061078f6004803603602081101561076357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612083565b6040518082600860200280838360005b838110156107ba57808201518184015260208101905061079f565b5050505090500191505060405180910390f35b3480156107d957600080fd5b506107e2612110565b6040518082815260200191505060405180910390f35b34801561080457600080fd5b506108316004803603602081101561081b57600080fd5b8101908080359060200190929190505050612116565b6040518082815260200191505060405180910390f35b34801561085357600080fd5b506108806004803603602081101561086a57600080fd5b8101908080359060200190929190505050612131565b005b34801561088e57600080fd5b506108bb600480360360208110156108a557600080fd5b810190808035906020019092919050505061259a565b005b3480156108c957600080fd5b5061090c600480360360208110156108e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612771565b6040518082815260200191505060405180910390f35b34801561092e57600080fd5b50610937612830565b6040518082815260200191505060405180910390f35b34801561095957600080fd5b50610962612837565b6040518082815260200191505060405180910390f35b34801561098457600080fd5b5061098d61283c565b6040518082815260200191505060405180910390f35b3480156109af57600080fd5b506109b8612841565b6040518082815260200191505060405180910390f35b3480156109da57600080fd5b506109e3612847565b6040518082815260200191505060405180910390f35b610a2f60048036036040811015610a0f57600080fd5b81019080803590602001909291908035906020019092919050505061284c565b005b348015610a3d57600080fd5b50610a6a60048036036020811015610a5457600080fd5b8101908080359060200190929190505050612bcf565b6040518082815260200191505060405180910390f35b348015610a8c57600080fd5b50610a95612bea565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610acd57600080fd5b50610ad6612c02565b005b348015610ae457600080fd5b50610b4760048036036040811015610afb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c1e565b005b348015610b5557600080fd5b50610b5e612eb6565b60405180821515815260200191505060405180910390f35b348015610b8257600080fd5b50610b8b612ec9565b005b348015610b9957600080fd5b50610ba2612ef6565b6040518082815260200191505060405180910390f35b348015610bc457600080fd5b50610bf160048036036020811015610bdb57600080fd5b8101908080359060200190929190505050612efd565b005b610c1f60048036036020811015610c0957600080fd5b8101908080359060200190929190505050613039565b005b348015610c2d57600080fd5b50610c366132c7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6e57600080fd5b50610c776132ed565b005b348015610c8557600080fd5b50610c8e6133a1565b6040518082815260200191505060405180910390f35b348015610cb057600080fd5b50610cb96133a9565b6040518082815260200191505060405180910390f35b348015610cdb57600080fd5b50610ce46133af565b60405180848152602001838152602001828152602001935050505060405180910390f35b348015610d1457600080fd5b50610d1d6133c7565b6040518082815260200191505060405180910390f35b348015610d3f57600080fd5b50610d486133cc565b60405180821515815260200191505060405180910390f35b348015610d6c57600080fd5b50610d75613488565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dad57600080fd5b50610df060048036036020811015610dc457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134ae565b60405180821515815260200191505060405180910390f35b348015610e1457600080fd5b50610e1d613507565b6040518082815260200191505060405180910390f35b348015610e3f57600080fd5b50610e4861350d565b005b348015610e5657600080fd5b50610e5f61350f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e9757600080fd5b50610ea0613538565b005b348015610eae57600080fd5b50610eb76137fa565b6040518082815260200191505060405180910390f35b610ed5613801565b005b348015610ee357600080fd5b50610f2660048036036020811015610efa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061384a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f69578082015181840152602081019050610f4e565b505050509050019250505060405180910390f35b348015610f8957600080fd5b50610f9261391a565b005b348015610fa057600080fd5b50610fa9613a1f565b6040518082815260200191505060405180910390f35b348015610fcb57600080fd5b50610fd4613a27565b6040518082815260200191505060405180910390f35b348015610ff657600080fd5b506110236004803603602081101561100d57600080fd5b8101908080359060200190929190505050613a2c565b60405180821515815260200191505060405180910390f35b34801561104757600080fd5b50611050613e24565b6040518082815260200191505060405180910390f35b34801561107257600080fd5b5061109f6004803603602081101561108957600080fd5b8101908080359060200190929190505050613e29565b6040518082815260200191505060405180910390f35b3480156110c157600080fd5b506110ca613e44565b6040518082815260200191505060405180910390f35b3480156110ec57600080fd5b506111196004803603602081101561110357600080fd5b8101908080359060200190929190505050613e4a565b6040518082815260200191505060405180910390f35b34801561113b57600080fd5b50611144613e6e565b6040518082815260200191505060405180910390f35b34801561116657600080fd5b506111a96004803603602081101561117d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e73565b005b3480156111b757600080fd5b506111e4600480360360208110156111ce57600080fd5b8101908080359060200190929190505050613f85565b6040518082815260200191505060405180910390f35b34801561120657600080fd5b506112496004803603602081101561121d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fa9565b604051808381526020018281526020019250505060405180910390f35b34801561127257600080fd5b5061127b61410f565b6040518082815260200191505060405180910390f35b34801561129d57600080fd5b506112a661411c565b6040518082815260200191505060405180910390f35b3480156112c857600080fd5b5061130b600480360360208110156112df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614121565b6040518082815260200191505060405180910390f35b34801561132d57600080fd5b5061133661416d565b6040518082815260200191505060405180910390f35b34801561135857600080fd5b50611361614172565b6040518082815260200191505060405180910390f35b34801561138357600080fd5b506113c66004803603602081101561139a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614179565b604051808f81526020018e151581526020018d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019e50505050505050505050505050505060405180910390f35b34801561145b57600080fd5b50611464614212565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561149c57600080fd5b506114a5611699565b005b3480156114b357600080fd5b506114bc614238565b6040518082815260200191505060405180910390f35b3480156114de57600080fd5b50611521600480360360208110156114f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061423e565b005b6115656004803603602081101561153957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061186f565b005b34801561157357600080fd5b5061157c614331565b6040518082815260200191505060405180910390f35b34801561159e57600080fd5b506115cb600480360360208110156115b557600080fd5b8101908080359060200190929190505050614337565b6040518082815260200191505060405180910390f35b3480156115ed57600080fd5b506116306004803603602081101561160457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614352565b6040518082600560200280838360005b8381101561165b578082015181840152602081019050611640565b5050505090500191505060405180910390f35b34801561167a57600080fd5b506116836144f6565b6040518082815260200191505060405180910390f35b6116a161391a565b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541161175e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f74207265676973746572656420796574000000000000000000000000000081525060200191505060405180910390fd5b600061176933612771565b111561177857611777612ec9565b5b60008061178433613fa9565b915091503373ffffffffffffffffffffffffffffffffffffffff167f175de791cae106394f6c9daa00b9b55b3c2babff16f57c56b89a8c66601ec59e6117d785600201548561469390919063ffffffff16565b6117ee86600301548561469390919063ffffffff16565b604051808381526020018281526020019250505060405180910390a28260010160009054906101000a900460ff1615801561182c5750428360000154105b1561184f5760018360010160006101000a81548160ff0219169083151502179055505b818360020181905550808360030181905550428360070181905550505050565b61187761391a565b6000604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415611913576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806158116025913960400191505060405180910390fd5b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006119623384614716565b90506000826000015411151560003414151514156119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e64203020666f7220726567697374726174696f6e00000000000000000081525060200191505060405180910390fd5b600082600001541415611a00576119ff338261480e565b5b611a08611699565b6000611a206203d0903461458490919063ffffffff16565b9050611a398184600301546144fc90919063ffffffff16565b8360030181905550611a583484601101546144fc90919063ffffffff16565b8360110181905550611a75346044546144fc90919063ffffffff16565b604481905550611a928184600401546144fc90919063ffffffff16565b83600401819055503373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2611af433823485614b80565b611afd33614fe1565b600060476000611b0b61350f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601201549050611b69604154611b6483476144fc90919063ffffffff16565b615104565b604181905550611b9b6064611b8d600560640160425461458490919063ffffffff16565b61460a90919063ffffffff16565b60415410611bbf576000604860006101000a81548160ff0219169083151502179055505b611bea604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661511e565b15611caf57604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933611c43604a543461458490919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611c9657600080fd5b505af1158015611caa573d6000803e3d6000fd5b505050505b5050505050565b600080604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415611d11576000915050611e32565b600080600190505b6008811015611da757611d98611d896064611d7b60178560088110611d3a57fe5b0154611d6d60078760088110611d4c57fe5b0154896009018860088110611d5d57fe5b015461458490919063ffffffff16565b61458490919063ffffffff16565b61460a90919063ffffffff16565b836144fc90919063ffffffff16565b91508080600101915050611d19565b50611e2d8260010160009054906101000a900460ff1680611dcb5750428360000154145b611dde57681b1ae4d6e2ef500000611de1565b60005b611e1f62278d00611e11611e0287600701544261469390919063ffffffff16565b8661458490919063ffffffff16565b61460a90919063ffffffff16565b6144fc90919063ffffffff16565b925050505b919050565b600881565b611e4461391a565b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611e8f611699565b6001600603816006015410611ea357600080fd5b611ec2336039600184600601540160068110611ebb57fe5b0154615131565b806006016000815480929190600101919050555080600601543373ffffffffffffffffffffffffffffffffffffffff167fab7da30456d497e9ccbd16778660ea62630c90e6eacce1f230887620f0449c8960405160405180910390a350565b604d5481565b6000611ffb62015180611fed611f88604b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544261469390919063ffffffff16565b611fdf604d54604b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461458490919063ffffffff16565b61458490919063ffffffff16565b61460a90919063ffffffff16565b9050919050565b6007816008811061201257600080fd5b016000915090505481565b600f816008811061202d57600080fd5b016000915090505481565b604b6020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b6033816006811061207857600080fd5b016000915090505481565b61208b6156b0565b604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901600880602002604051908101604052809291908260088015612104576020028201915b8154815260200190600101908083116120f0575b50505050509050919050565b60425481565b601f81600a811061212657600080fd5b016000915090505481565b600081116121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f6b656e7320616d6f756e742076616c7565000000000081525060200191505060405180910390fd5b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154811115612242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806157b66026913960400191505060405180910390fd5b61226d604960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661511e565b6122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806157dc6035913960400191505060405180910390fd5b60006122cd33611f27565b905060008111156123745761232d81604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546144fc90919063ffffffff16565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6123c982604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461469390919063ffffffff16565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061246b82604c5461469390919063ffffffff16565b604c81905550604960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561250457600080fd5b505af1158015612518573d6000803e3d6000fd5b505050506040513d602081101561252e57600080fd5b810190808051906020019092919050505061254857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75836040518082815260200191505060405180910390a25050565b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506125e5611699565b60006125fd6203d0908461460a90919063ffffffff16565b905060008111612675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f547279696e6720746f20776974686472617720746f6f20736d616c6c0000000081525060200191505060405180910390fd5b61268c83836002015461469390919063ffffffff16565b82600201819055506126ab8183601201546144fc90919063ffffffff16565b82601201819055506126c8816045546144fc90919063ffffffff16565b6045819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612714573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f6cca423c6ffc06e62a0acc433965e074b11c28479b0449250ce3ff65ac9e39fe826040518082815260200191505060405180910390a261276b6133cc565b50505050565b6000600260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127ce576000612829565b612828600260040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000015461469390919063ffffffff16565b5b9050919050565b6201518081565b600681565b600581565b604a5481565b600a81565b61285461391a565b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060003411156128ab576128aa600061186f565b5b6128b3611699565b6000831180156128c35750600883105b612935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f446f6e27742074727920746f206275792062656573206f66207479706520300081525060200191505060405180910390fd5b6001600803831415612a31576129496133cc565b6129bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5375706572426565206973206e6f7420756e6c6f636b6564207965740000000081525060200191505060405180910390fd5b62093a806129d682600001544261469390919063ffffffff16565b10612a2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806156f6602d913960400191505060405180910390fd5b612aac565b8060080154831115612aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f54686973206265652074797065206e6f7420756e6c6f636b656420796574000081525060200191505060405180910390fd5b5b6020612ad183836009018660088110612ac157fe5b01546144fc90919063ffffffff16565b1115612adc57600080fd5b612aff82826009018560088110612aef57fe5b01546144fc90919063ffffffff16565b816009018460088110612b0e57fe5b0181905550612b28826046546144fc90919063ffffffff16565b6046819055506000612b5a33612b558560078860088110612b4557fe5b015461458490919063ffffffff16565b615198565b9050612b7333826000612b6e336000614716565b614b80565b3373ffffffffffffffffffffffffffffffffffffffff167f3b8efbf8f2c0dcb58c5082344b6573cf15279f2be6c0415141060f747fd8bab18585604051808381526020018281526020019250505060405180910390a250505050565b602981600a8110612bdf57600080fd5b016000915090505481565b73f9e327f816ec98b10fa9f5fddd496fad3173aeb181565b612c0a615263565b612c1c612c1561350f565b600061480e565b565b612c2661530f565b73ffffffffffffffffffffffffffffffffffffffff16612c4461350f565b73ffffffffffffffffffffffffffffffffffffffff1614612ccd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806157236021913960400191505060405180910390fd5b612d7d8261511e565b612dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806157446030913960400191505060405180910390fd5b612ddb8161511e565b612e30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806157dc6035913960400191505060405180910390fd5b81604860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b604860009054906101000a900460ff1681565b612ee6612ed533612771565b6045546144fc90919063ffffffff16565b604581905550612ef4615317565b565b62093a8081565b612f0561530f565b73ffffffffffffffffffffffffffffffffffffffff16612f2361350f565b73ffffffffffffffffffffffffffffffffffffffff1614612fac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600081118015612fbd575060328111155b61302f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d756c7469706c696572206973206f7574206f662072616e676500000000000081525060200191505060405180910390fd5b80604d8190555050565b61304161391a565b6000604760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600034111561309857613097600061186f565b5b6130a0611699565b60016008038210613119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f206d6f7265206c6576656c7320746f20756e6c6f636b000000000000000081525060200191505060405180910390fd5b602081600901600184036008811061312d57fe5b0154146131a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50726576206c6576656c206d7573742062652066696c6c65640000000000000081525060200191505060405180910390fd5b6001816008015401821461321e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f547279696e6720746f20756e6c6f636b2077726f6e672062656520747970650081525060200191505060405180910390fd5b600260080382141561323d5760098160050154101561323c57600080fd5b5b61325533600f846008811061324e57fe5b0154615198565b50818160080181905550600181600901836008811061327057fe5b01819055503373ffffffffffffffffffffffffffffffffffffffff167f9314809af08e4ddf0214b2248c8ea28466a17bcf8283d48cebe52b0f1386af0f836040518082815260200191505060405180910390a25050565b604960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6132f561530f565b73ffffffffffffffffffffffffffffffffffffffff1661331361350f565b73ffffffffffffffffffffffffffffffffffffffff161461339c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600080fd5b600160080381565b60415481565b60028060000154908060010154908060020154905083565b600a81565b60006133fa60646133ec600560640360415461458490919063ffffffff16565b61460a90919063ffffffff16565b4711613425576001604860006101000a81548160ff0219169083151502179055506041546042819055505b6134516064613443600560640160425461458490919063ffffffff16565b61460a90919063ffffffff16565b4710613473576000604860006101000a81548160ff0219169083151502179055505b604860009054906101000a900460ff16905090565b604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b604c5481565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061359761354633611f27565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546144fc90919063ffffffff16565b905060008111156137f7576135cd604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661511e565b156137f65742604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506136b681604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546144fc90919063ffffffff16565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550604860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561378f57600080fd5b505af11580156137a3573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f7716940ca051e3c6f5ed060e267e31c21a18489322e62868b2a96cda4b1a72ea826040518082815260200191505060405180910390a25b5b50565b6203d09081565b3373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015613847573d6000803e3d6000fd5b50565b6060604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060150180548060200260200160405190810160405280929190818152602001828054801561390e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116138c4575b50505050509050919050565b5b6000600280015411801561394957504261394662093a806002600101546144fc90919063ffffffff16565b11155b15613a1d576000613977606461396960014761458490919063ffffffff16565b61460a90919063ffffffff16565b90506139a761399360028001548361460a90919063ffffffff16565b6002600001546144fc90919063ffffffff16565b6002600001819055506139cb62093a806002600101546144fc90919063ffffffff16565b6002600101819055507f51e794b4ff7ffc1b303e757fa6fc3d0b3e162556cc78d07914238fe3c3f96d8f600280015482604051808381526020018281526020019250505060405180910390a15061391b565b565b600260080381565b600a81565b6000808211613aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f6b656e7320616d6f756e742076616c7565000000000081525060200191505060405180910390fd5b613ace604960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661511e565b613b23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806157dc6035913960400191505060405180910390fd5b604960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015613bd457600080fd5b505af1158015613be8573d6000803e3d6000fd5b505050506040513d6020811015613bfe57600080fd5b8101908080519060200190929190505050613c1c5760009050613e1f565b6000613c2733611f27565b90506000811115613cce57613c8781604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546144fc90919063ffffffff16565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b613d2383604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546144fc90919063ffffffff16565b604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042604b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550613dc583604c546144fc90919063ffffffff16565b604c819055503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d846040518082815260200191505060405180910390a260019150505b919050565b602081565b60398160068110613e3957600080fd5b016000915090505481565b60455481565b60408181548110613e5a57600080fd5b906000526020600020016000915090505481565b600581565b613e7b61391a565b6000604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050613ec6611699565b6000816005015490505b600a811015613f8057601f81600a8110613ee657fe5b0154826004015410613f7357613f17602982600a8110613f0257fe5b015483600301546144fc90919063ffffffff16565b8260030181905550600181018260050181905550600181018373ffffffffffffffffffffffffffffffffffffffff167f93135b83255eeccdefec3e312591c2743d0dc8bfac656f9773d7a132af4bb81f60405160405180910390a35b8080600101915050613ed0565b505050565b603f8181548110613f9557600080fd5b906000526020600020016000915090505481565b6000806000604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141561400957600080925092505061410a565b8060020154925080600301549150600061402285611cb6565b90508160010160009054906101000a900460ff161580156140465750428260000154105b1561408857614067681b1ae4d6e2ef5000008261469390919063ffffffff16565b9050614085681b1ae4d6e2ef500000846144fc90919063ffffffff16565b92505b60006140c260646140b460338660060154600681106140a357fe5b01548561458490919063ffffffff16565b61460a90919063ffffffff16565b905060006140d9828461469390919063ffffffff16565b90506140ee82876144fc90919063ffffffff16565b955061410381866144fc90919063ffffffff16565b9450505050505b915091565b681b1ae4d6e2ef50000081565b600381565b6000600260040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600181565b62093a8081565b60476020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004015490806005015490806006015490806007015490806008015490806011015490806012015490806013015490806014015490508e565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60465481565b61424661530f565b73ffffffffffffffffffffffffffffffffffffffff1661426461350f565b73ffffffffffffffffffffffffffffffffffffffff16146142ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60435481565b6017816008811061434757600080fd5b016000915090505481565b61435a6156d3565b61436382611f27565b8160006005811061437057fe5b602002018181525050604b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154816001600581106143c957fe5b602002018181525050604b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301548160026005811061442257fe5b602002018181525050604b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548160036005811061447b57fe5b6020020181815250506144db604d54604b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461458490919063ffffffff16565b816004600581106144e857fe5b602002018181525050919050565b60445481565b60008082840190508381101561457a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156145975760009050614604565b60008284029050828482816145a857fe5b04146145ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806157956021913960400191505060405180910390fd5b809150505b92915050565b6000808211614681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838161468a57fe5b04905092915050565b60008282111561470b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414801561479557508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156147a257819050614808565b604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b92915050565b6000604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905042816000018190555060208160090160006008811061486c57fe5b01819055506001816008018190555042816007018190555061489a60206046546144fc90919063ffffffff16565b604681905550604360008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614614b2157818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601501839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b175760476000604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601401600081548092919060010191905055505b614b2082614fe1565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e5560405160405180910390a3505050565b614b8861350f565b73ffffffffffffffffffffffffffffffffffffffff166108fc6203d0906064600a870281614bb257fe5b0481614bba57fe5b049081150290604051600060405180830381858888f19350505050158015614be6573d6000803e3d6000fd5b5073f9e327f816ec98b10fa9f5fddd496fad3173aeb173ffffffffffffffffffffffffffffffffffffffff166108fc6203d09060646003870281614c2657fe5b0481614c2e57fe5b049081150290604051600060405180830381858888f19350505050158015614c5a573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614614fdb576000604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050614ce98382601301546144fc90919063ffffffff16565b8160130181905550614cfa82614fe1565b600082905060005b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015614d435750603f8054905081105b15614fd7576000614d876064614d79603f8581548110614d5f57fe5b90600052602060002001548a61458490919063ffffffff16565b61460a90919063ffffffff16565b9050614dde81604760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546144fc90919063ffffffff16565b604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550614eb5614e646064614e5660408681548110614e3c57fe5b90600052602060002001548b61458490919063ffffffff16565b61460a90919063ffffffff16565b604760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401546144fc90919063ffffffff16565b604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550600182018373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f8fa68a6a8e2fc9ff758a6e64afba8bc2f66fb082999a2c5225c8c49633faded4846040518082815260200191505060405180910390a4604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250508080600101915050614d02565b5050505b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561506b5750600260030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15615101576000604760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050674563918244f400008160110154101580156150d75750600a816015018054905010155b80156150f057506802b5e3af16b1880000816013015410155b156150ff576150fe826154dc565b5b505b50565b6000818310156151145781615116565b825b905092915050565b600080823b905060008111915050919050565b6000604760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061518b82826002015461469390919063ffffffff16565b8160020181905550505050565b600080604760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006151ec848360030154615697565b9050600061522c606461521e600a606403615210868a61469390919063ffffffff16565b61458490919063ffffffff16565b61460a90919063ffffffff16565b905061524582846003015461469390919063ffffffff16565b83600301819055506152578682615131565b80935050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146152bd57600080fd5b6152e8600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661423e565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600033905090565b61531f61391a565b600260030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166153e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f55736572206e6f74207265676973746572656420666f7220626f6e757300000081525060200191505060405180910390fd5b60006153f5476153f033612771565b615697565b905061544c81600260040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144fc90919063ffffffff16565b600260040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156154d8573d6000803e3d6000fd5b5050565b6154e461391a565b600260030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561558a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806157746021913960400191505060405180910390fd5b6001600260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600260000154600260040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550615649600160028001546144fc90919063ffffffff16565b60028001819055508073ffffffffffffffffffffffffffffffffffffffff167fffe88a5f59af245d336238ae39a54e562c15024f255db787524f9abd61c8765a60405160405180910390a250565b60008183106156a657816156a8565b825b905092915050565b604051806101000160405280600890602082028036833780820191505090505090565b6040518060a0016040528060059060208202803683378082019150509050509056fe596f752073686f756c642062652072656769737465726564206c657373207468616e203720646179732061676f546f6b656e20636f6e747261637420616c726561647920636f6e6669677572656450726f76696465642061646472657373206973206e6f74206120746f6b656e20636f6e747261637420616464726573735573657220616c7265616479207265676973746572656420666f7220626f6e7573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6f7420656e6f75676820746f6b656e73206f6e20746865207374616b652062616c616e636550726f76696465642061646472657373206973206e6f74206120666c697020746f6b656e20636f6e74726163742061646472657373526566657272657220616464726573732073686f756c642062652072656769737465726564a2646970667358221220542b71195fb1bff550672c5fc5abfcfe412f0cdcf1e92eb741bb13b55d21de1964736f6c634300070600335573657220616c7265616479207265676973746572656420666f7220626f6e7573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed ByteCode Sourcemap

11454:19932:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15723:1;15710:9;:14;15706:186;;;15782:1;15745:7;:19;15753:10;15745:19;;;;;;;;;;;;;;;:34;;;:38;15741:88;;;15804:9;:7;:9::i;:::-;15741:88;15706:186;;;15861:19;15877:1;15861:7;:19::i;:::-;15706:186;11454:19932;;;;;22865:656;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12085:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22478:379;;;;;;;;;;;;;:::i;:::-;;14527:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29232:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12353:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12478:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14446:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13015:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15907:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13841:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12698:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30106:820;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18295:545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9994:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14119:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12303:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13555:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14258:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12255:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21357:1113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12862:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14565:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24169:135;;;;;;;;;;;;;:::i;:::-;;27651:564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14072:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23992:169;;;;;;;;;;;;;:::i;:::-;;8679:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28223:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20606:743;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14212:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11075:96;;;;;;;;;;;;;:::i;:::-;;12130:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13809:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8958:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13390:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16039:420;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14170:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9742:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14493:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27500:41;;;;;;;;;;;;;:::i;:::-;;7910:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29484:614;;;;;;;;;;;;;:::i;:::-;;13218:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27549:86;;;:::i;:::-;;16467:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9268:466;;;;;;;;;;;;;:::i;:::-;;12193:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13439:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28418:806;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13271:48;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13102:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13948:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13741:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13497:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23529:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13673:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19656:942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;13326:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14666:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9874:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8621:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13611:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14022:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10937:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18848:800;;;;;;;;;;;;;:::i;:::-;;13985:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11179:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16830:1457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13878:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12602:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30934:447;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13912:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18848:800;9139:24;:22;:24::i;:::-;18905:21:::1;18929:7;:19;18937:10;18929:19;;;;;;;;;;;;;;;18905:43;;18991:1;18967:6;:21;;;:25;18959:56;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19062:1;19032:27;19048:10;19032:15;:27::i;:::-;:31;19028:79;;;19080:15;:13;:15::i;:::-;19028:79;19120:20;19142:18:::0;19164:26:::1;19179:10;19164:14;:26::i;:::-;19119:71;;;;19236:10;19206:151;;;19261:37;19278:6;:19;;;19261:12;:16;;:37;;;;:::i;:::-;19313:33;19328:6;:17;;;19313:10;:14;;:33;;;;:::i;:::-;19206:151;;;;;;;;;;;;;;;;;;;;;;;;19375:6;:23;;;;;;;;;;;;19374:24;:67;;;;;19426:15;19402:6;:21;;;:39;19374:67;19370:130;;;19484:4;19458:6;:23;;;:30;;;;;;;;;;;;;;;;;;19370:130;19534:12;19512:6;:19;;:34;;;;19577:10;19557:6;:17;;:30;;;;19625:15;19598:6;:24;;:42;;;;9174:1;;;18848:800::o:0;16830:1457::-;9139:24;:22;:24::i;:::-;16945:1:::1;16914:7;:12;16922:3;16914:12;;;;;;;;;;;;;;;:27;;;:32;;16906:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17001:21;17025:7;:19;17033:10;17025:19;;;;;;;;;;;;;;;17001:43;;17055:18;17076:27;17087:10;17099:3;17076:10;:27::i;:::-;17055:48;;17168:1;17144:6;:21;;;:25;17124:45;;17138:1;17125:9;:14;17124:45;;;;17116:81;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17249:1;17224:6;:21;;;:26;17220:92;;;17267:33;17277:10;17289;17267:9;:33::i;:::-;17220:92;17324:9;:7;:9::i;:::-;17356:11;17370:28;13258:6;17370:9;:13;;:28;;;;:::i;:::-;17356:42;;17429:26;17451:3;17429:6;:17;;;:21;;:26;;;;:::i;:::-;17409:6;:17;;:46;;;;17490:36;17516:9;17490:6;:21;;;:25;;:36;;;;:::i;:::-;17466:6;:21;;:60;;;;17554:29;17573:9;17554:14;;:18;;:29;;;;:::i;:::-;17537:14;:46;;;;17610:22;17628:3;17610:6;:13;;;:17;;:22;;;;:::i;:::-;17594:6;:13;;:38;;;;17658:10;17648:32;;;17670:9;17648:32;;;;;;;;;;;;;;;;;;17705:55;17721:10;17733:3;17738:9;17749:10;17705:15;:55::i;:::-;17773:31;17793:10;17773:19;:31::i;:::-;17817:23;17843:7;:16;17851:7;:5;:7::i;:::-;17843:16;;;;;;;;;;;;;;;:32;;;17817:58;;17899:64;17908:10;;17920:42;17946:15;17920:21;:25;;:42;;;;:::i;:::-;17899:8;:64::i;:::-;17886:10;:77;;;;17992:57;18045:3;17992:48;13603:1;18012:3;:27;17992:15;;:19;;:48;;;;:::i;:::-;:52;;:57;;;;:::i;:::-;17978:10;;:71;17974:128;;18085:5;18064:18;;:26;;;;;;;;;;;;;;;;;;17974:128;18128:40;18147:20;;;;;;;;;;;18128:18;:40::i;:::-;18124:156;;;18198:20;;;;;;;;;;;18183:41;;;18225:10;18237:30;18251:15;;18237:9;:13;;:30;;;;:::i;:::-;18183:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18124:156;9174:1;;;;16830:1457:::0;:::o;22865:656::-;22915:7;22935:21;22959:7;:13;22967:4;22959:13;;;;;;;;;;;;;;;22935:37;;23012:1;22987:6;:21;;;:26;22983:67;;;23037:1;23030:8;;;;;22983:67;23062:13;23095:6;23104:1;23095:10;;23090:189;12122:1;23107;:14;23090:189;;;23151:116;23179:73;23248:3;23179:64;23218:21;23240:1;23218:24;;;;;;;;;23179:34;23198:11;23210:1;23198:14;;;;;;;;;23179:6;:11;;23191:1;23179:14;;;;;;;;;:18;;:34;;;;:::i;:::-;:38;;:64;;;;:::i;:::-;:68;;:73;;;;:::i;:::-;23151:5;:9;;:116;;;;:::i;:::-;23143:124;;23123:3;;;;;;;23090:189;;;;23298:215;23414:6;:23;;;;;;;;;;;;:67;;;;23466:15;23441:6;:21;;;:40;23414:67;:98;;13377:6;23414:98;;;23484:1;23414:98;23298:97;23387:7;23298:70;23322:45;23342:6;:24;;;23322:15;:19;;:45;;;;:::i;:::-;23298:5;:23;;:70;;;;:::i;:::-;:88;;:97;;;;:::i;:::-;:115;;:215;;;;:::i;:::-;23291:222;;;;22865:656;;;;:::o;12085:38::-;12122:1;12085:38;:::o;22478:379::-;9139:24;:22;:24::i;:::-;22546:21:::1;22570:7;:19;22578:10;22570:19;;;;;;;;;;;;;;;22546:43;;22602:9;:7;:9::i;:::-;22672:1;12345;22654:19;22632:6;:19;;;:41;22624:50;;;::::0;::::1;;22685:69;22703:10;22715:13;22751:1;22729:6;:19;;;:23;22715:38;;;;;;;;;22685:17;:69::i;:::-;22765:6;:19;;;:21;;;;;;;;;;;;;22829:6;:19;;;22817:10;22802:47;;;;;;;;;;;;9174:1;22478:379::o:0;14527:29::-;;;;:::o;29232:244::-;29299:7;29324:144;14155:6;29324:119;29391:51;29411:6;:19;29418:11;29411:19;;;;;;;;;;;;;;;:30;;;29391:15;:19;;:51;;;;:::i;:::-;29324:52;29365:10;;29324:6;:19;29331:11;29324:19;;;;;;;;;;;;;;;:26;;;:40;;:52;;;;:::i;:::-;:66;;:119;;;;:::i;:::-;:133;;:144;;;;:::i;:::-;29317:151;;29232:244;;;:::o;12353:118::-;;;;;;;;;;;;;;;;;;;;:::o;12478:117::-;;;;;;;;;;;;;;;;;;;;:::o;14446:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13015:80::-;;;;;;;;;;;;;;;;;;;;:::o;15907:124::-;15960:26;;:::i;:::-;16006:7;:12;16014:3;16006:12;;;;;;;;;;;;;;;:17;;15999:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15907:124;;;:::o;13841:30::-;;;;:::o;12698:157::-;;;;;;;;;;;;;;;;;;;;:::o;30106:820::-;30176:1;30166:7;:11;30158:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30237:6;:18;30244:10;30237:18;;;;;;;;;;;;;;;:25;;;30226:7;:36;;30218:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30322:44;30341:24;;;;;;;;;;;30322:18;:44::i;:::-;30314:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30435:14;30452:27;30468:10;30452:15;:27::i;:::-;30435:44;;30501:1;30492:6;:10;30488:124;;;30554:48;30595:6;30554;:18;30561:10;30554:18;;;;;;;;;;;;;;;:36;;;:40;;:48;;;;:::i;:::-;30515:6;:18;30522:10;30515:18;;;;;;;;;;;;;;;:36;;:87;;;;30488:124;30650:38;30680:7;30650:6;:18;30657:10;30650:18;;;;;;;;;;;;;;;:25;;;:29;;:38;;;;:::i;:::-;30622:6;:18;30629:10;30622:18;;;;;;;;;;;;;;;:25;;:66;;;;30729:15;30697:6;:18;30704:10;30697:18;;;;;;;;;;;;;;;:29;;:47;;;;30768:23;30783:7;30768:10;;:14;;:23;;;;:::i;:::-;30755:10;:36;;;;30817:24;;;;;;;;;;;30810:41;;;30852:10;30864:7;30810:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30802:71;;;;;;30898:10;30889:29;;;30910:7;30889:29;;;;;;;;;;;;;;;;;;30106:820;;:::o;18295:545::-;18347:21;18371:7;:19;18379:10;18371:19;;;;;;;;;;;;;;;18347:43;;18403:9;:7;:9::i;:::-;18425:13;18441:25;13258:6;18441;:10;;:25;;;;:::i;:::-;18425:41;;18493:1;18485:5;:9;18477:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18560:31;18584:6;18560;:19;;;:23;;:31;;;;:::i;:::-;18538:6;:19;;:53;;;;18627:33;18654:5;18627:6;:22;;;:26;;:33;;;;:::i;:::-;18602:6;:22;;:58;;;;18689:26;18709:5;18689:15;;:19;;:26;;;;:::i;:::-;18671:15;:44;;;;18726:10;:19;;:26;18746:5;18726:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18779:10;18768:29;;;18791:5;18768:29;;;;;;;;;;;;;;;;;;18810:22;:20;:22::i;:::-;;18295:545;;;:::o;9994:169::-;10053:7;10080:5;:20;;:26;10101:4;10080:26;;;;;;;;;;;;;;;;;;;;;;;;;:75;;10154:1;10080:75;;;10109:42;10130:5;:14;;:20;10145:4;10130:20;;;;;;;;;;;;;;;;10109:5;:16;;;:20;;:42;;;;:::i;:::-;10080:75;10073:82;;9994:169;;;:::o;14119:42::-;14155:6;14119:42;:::o;12303:43::-;12345:1;12303:43;:::o;13555:49::-;13603:1;13555:49;:::o;14258:36::-;;;;:::o;12255:41::-;12294:2;12255:41;:::o;21357:1113::-;9139:24;:22;:24::i;:::-;21448:21:::1;21472:7;:19;21480:10;21472:19;;;;;;;;;;;;;;;21448:43;;21520:1;21508:9;:13;21504:65;;;21538:19;21554:1;21538:7;:19::i;:::-;21504:65;21581:9;:7;:9::i;:::-;21617:1;21611:3;:7;:27;;;;;12122:1;21622:3;:16;21611:27;21603:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12185:1;12122;12172:14;21689:3;:22;21685:359;;;21736:22;:20;:22::i;:::-;21728:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13660:6;21814:42;21834:6;:21;;;21814:15;:19;;:42;;;;:::i;:::-;:67;21806:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21685:359;;;21979:6;:18;;;21972:3;:25;;21964:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21685:359;13317:2;22064:27;22085:5;22064:6;:11;;22076:3;22064:16;;;;;;;;;:20;;:27;;;;:::i;:::-;:50;;22056:59;;;::::0;::::1;;22145:27;22166:5;22145:6;:11;;22157:3;22145:16;;;;;;;;;:20;;:27;;;;:::i;:::-;22126:6;:11;;22138:3;22126:16;;;;;;;;:46;;;;22201:26;22221:5;22201:15;;:19;;:26;;;;:::i;:::-;22183:15;:44;;;;22238:18;22259:60;22279:10;22291:27;22312:5;22291:11;22303:3;22291:16;;;;;;;;;:20;;:27;;;;:::i;:::-;22259:19;:60::i;:::-;22238:81;;22332:78;22348:10;22360;22372:1;22375:34;22386:10;22406:1;22375:10;:34::i;:::-;22332:15;:78::i;:::-;22439:10;22428:34;;;22451:3;22456:5;22428:34;;;;;;;;;;;;;;;;;;;;;;;;9174:1;;21357:1113:::0;;:::o;12862:146::-;;;;;;;;;;;;;;;;;;;;:::o;14565:94::-;14617:42;14565:94;:::o;24169:135::-;24233:22;:20;:22::i;:::-;24266:30;24276:7;:5;:7::i;:::-;24293:1;24266:9;:30::i;:::-;24169:135::o;27651:564::-;8062:12;:10;:12::i;:::-;8051:23;;:7;:5;:7::i;:::-;:23;;;8043:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27818:3:::1;27786:36;;:20;;;;;;;;;;;:36;;;27778:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27877:41;27896:21;27877:18;:41::i;:::-;27869:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27988:45;28007:25;27988:18;:45::i;:::-;27980:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28125:21;28102:20;;:44;;;;;;;;;;;;;;;;;;28182:25;28155:24;;:52;;;;;;;;;;;;;;;;;;27651:564:::0;;:::o;14072:38::-;;;;;;;;;;;;;:::o;23992:169::-;24073:48;24093:27;24109:10;24093:15;:27::i;:::-;24073:15;;:19;;:48;;;;:::i;:::-;24055:15;:66;;;;24132:21;:19;:21::i;:::-;23992:169::o;8679:44::-;8716:7;8679:44;:::o;28223:187::-;8062:12;:10;:12::i;:::-;8051:23;;:7;:5;:7::i;:::-;:23;;;8043:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28316:1:::1;28303:10;:14;:34;;;;;28335:2;28321:10;:16;;28303:34;28295:73;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;28392:10;28379;:23;;;;28223:187:::0;:::o;20606:743::-;9139:24;:22;:24::i;:::-;20681:21:::1;20705:7;:19;20713:10;20705:19;;;;;;;;;;;;;;;20681:43;;20753:1;20741:9;:13;20737:65;;;20771:19;20787:1;20771:7;:19::i;:::-;20737:65;20814:9;:7;:9::i;:::-;12185:1;12122;12172:14;20844:3;:21;20836:58;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13317:2;20914:6;:11;;20932:1;20926:3;:7;20914:20;;;;;;;;;:43;20906:81;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21034:1;21013:6;:18;;;:22;21006:3;:29;20998:73;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12247:1;12122;12234:14;21088:3;:21;21084:81;;;21151:1;21134:6;:13;;;:18;;21126:27;;;::::0;::::1;;21084:81;21175:56;21195:10;21207:18;21226:3;21207:23;;;;;;;;;21175:19;:56::i;:::-;;21263:3;21242:6;:18;;:24;;;;21296:1;21277:6;:11;;21289:3;21277:16;;;;;;;;:20;;;;21325:10;21313:28;;;21337:3;21313:28;;;;;;;;;;;;;;;;;;9174:1;20606:743:::0;:::o;14212:39::-;;;;;;;;;;;;;:::o;11075:96::-;8062:12;:10;:12::i;:::-;8051:23;;:7;:5;:7::i;:::-;:23;;;8043:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11155:8:::1;::::0;::::1;12130:56:::0;12185:1;12122;12172:14;12130:56;:::o;13809:25::-;;;;:::o;8958:26::-;;;;;;;;;;;;;;;;;;;:::o;13390:42::-;13430:2;13390:42;:::o;16039:420::-;16086:4;16130:54;16180:3;16130:45;13547:1;16145:3;:29;16130:10;;:14;;:45;;;;:::i;:::-;:49;;:54;;;;:::i;:::-;16105:21;:79;16101:170;;16218:4;16197:18;;:25;;;;;;;;;;;;;;;;;;16251:10;;16233:15;:28;;;;16101:170;16310:57;16363:3;16310:48;13603:1;16330:3;:27;16310:15;;:19;;:48;;;;:::i;:::-;:52;;:57;;;;:::i;:::-;16285:21;:82;16281:135;;16401:5;16380:18;;:26;;;;;;;;;;;;;;;;;;16281:135;16433:18;;;;;;;;;;;16426:25;;16039:420;:::o;14170:35::-;;;;;;;;;;;;;:::o;9742:124::-;9808:4;9832:5;:20;;:26;9853:4;9832:26;;;;;;;;;;;;;;;;;;;;;;;;;9825:33;;9742:124;;;:::o;14493:25::-;;;;:::o;27500:41::-;:::o;7910:87::-;7956:7;7983:6;;;;;;;;;;;7976:13;;7910:87;:::o;29484:614::-;29534:14;29551:79;29602:27;29618:10;29602:15;:27::i;:::-;29551:6;:18;29558:10;29551:18;;;;;;;;;;;;;;;:36;;;:50;;:79;;;;:::i;:::-;29534:96;;29654:1;29645:6;:10;29641:450;;;29682:40;29701:20;;;;;;;;;;;29682:18;:40::i;:::-;29678:404;;;29769:15;29737:6;:18;29744:10;29737:18;;;;;;;;;;;;;;;:29;;:47;;;;29836:1;29797:6;:18;29804:10;29797:18;;;;;;;;;;;;;;;:36;;:40;;;;29887:46;29926:6;29887;:18;29894:10;29887:18;;;;;;;;;;;;;;;:34;;;:38;;:46;;;;:::i;:::-;29850:6;:18;29857:10;29850:18;;;;;;;;;;;;;;;:34;;:83;;;;29963:20;;;;;;;;;;;29948:41;;;29990:10;30002:6;29948:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30051:10;30029:41;;;30063:6;30029:41;;;;;;;;;;;;;;;;;;29678:404;29641:450;29484:614;:::o;13218:46::-;13258:6;13218:46;:::o;27549:86::-;27597:10;:19;;:30;27617:9;27597:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27549:86::o;16467:120::-;16520:16;16556:7;:13;16564:4;16556:13;;;;;;;;;;;;;;;:23;;16549:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16467:120;;;:::o;9268:466::-;9320:407;9349:1;9327:5;:19;;;:23;:80;;;;;9392:15;9354:34;8716:7;9354:5;:18;;;:22;;:34;;;;:::i;:::-;:53;;9327:80;9320:407;;;9424:14;9441:59;9496:3;9441:50;8671:1;9441:21;:25;;:50;;;;:::i;:::-;:54;;:59;;;;:::i;:::-;9424:76;;9534:53;9555:31;9566:5;:19;;;9555:6;:10;;:31;;;;:::i;:::-;9534:5;:16;;;:20;;:53;;;;:::i;:::-;9515:5;:16;;:72;;;;9623:34;8716:7;9623:5;:18;;;:22;;:34;;;;:::i;:::-;9602:5;:18;;:55;;;;9677:38;9687:5;:19;;;9708:6;9677:38;;;;;;;;;;;;;;;;;;;;;;;;9320:407;;;;9268:466::o;12193:55::-;12247:1;12122;12234:14;12193:55;:::o;13439:51::-;13488:2;13439:51;:::o;28418:806::-;28468:4;28501:1;28491:7;:11;28483:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28551:44;28570:24;;;;;;;;;;;28551:18;:44::i;:::-;28543:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28676:24;;;;;;;;;;;28669:45;;;28715:10;28735:4;28742:7;28669:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28664:121;;28770:5;28763:12;;;;28664:121;28795:14;28812:27;28828:10;28812:15;:27::i;:::-;28795:44;;28861:1;28852:6;:10;28848:124;;;28914:48;28955:6;28914;:18;28921:10;28914:18;;;;;;;;;;;;;;;:36;;;:40;;:48;;;;:::i;:::-;28875:6;:18;28882:10;28875:18;;;;;;;;;;;;;;;:36;;:87;;;;28848:124;29010:38;29040:7;29010:6;:18;29017:10;29010:18;;;;;;;;;;;;;;;:25;;;:29;;:38;;;;:::i;:::-;28982:6;:18;28989:10;28982:18;;;;;;;;;;;;;;;:25;;:66;;;;29089:15;29057:6;:18;29064:10;29057:18;;;;;;;;;;;;;;;:29;;:47;;;;29128:23;29143:7;29128:10;;:14;;:23;;;;:::i;:::-;29115:10;:36;;;;29174:10;29167:27;;;29186:7;29167:27;;;;;;;;;;;;;;;;;;29212:4;29205:11;;;28418:806;;;;:::o;13271:48::-;13317:2;13271:48;:::o;13102:107::-;;;;;;;;;;;;;;;;;;;;:::o;13948:30::-;;;;:::o;13741:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13497:51::-;13547:1;13497:51;:::o;23529:455::-;9139:24;:22;:24::i;:::-;23604:21:::1;23628:7;:13;23636:4;23628:13;;;;;;;;;;;;;;;23604:37;;23654:9;:7;:9::i;:::-;23681:6;23690;:13;;;23681:22;;23676:301;12294:2;23705:1;:16;23676:301;;;23764:13;23778:1;23764:16;;;;;;;;;23747:6;:13;;;:33;23743:223;;23821:40;23843:14;23858:1;23843:17;;;;;;;;;23821:6;:17;;;:21;;:40;;;;:::i;:::-;23801:6;:17;;:60;;;;23900:1;23896;:5;23880:6;:13;;:21;;;;23948:1;23944;:5;23938:4;23925:25;;;;;;;;;;;;23743:223;23723:3;;;;;;;23676:301;;;;9174:1;23529:455:::0;:::o;13673:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19656:942::-;19758:20;19793:18;19839:21;19863:7;:16;19871:7;19863:16;;;;;;;;;;;;;;;19839:40;;19919:1;19894:6;:21;;;:26;19890:72;;;19945:1;19948;19937:13;;;;;;;19890:72;19989:6;:19;;;19974:34;;20032:6;:17;;;20019:30;;20062:17;20082:15;20089:7;20082:6;:15::i;:::-;20062:35;;20113:6;:23;;;;;;;;;;;;20112:24;:67;;;;;20164:15;20140:6;:21;;;:39;20112:67;20108:219;;;20208:39;13377:6;20208:9;:13;;:39;;;;:::i;:::-;20196:51;;20275:40;13377:6;20275:10;:14;;:40;;;;:::i;:::-;20262:53;;20108:219;20339:19;20361:66;20423:3;20361:57;20375:21;20397:6;:19;;;20375:42;;;;;;;;;20361:9;:13;;:57;;;;:::i;:::-;:61;;:66;;;;:::i;:::-;20339:88;;20438:17;20458:26;20472:11;20458:9;:13;;:26;;;;:::i;:::-;20438:46;;20512:29;20529:11;20512:12;:16;;:29;;;;:::i;:::-;20497:44;;20565:25;20580:9;20565:10;:14;;:25;;;;:::i;:::-;20552:38;;19656:942;;;;;;;;:::o;13326:57::-;13377:6;13326:57;:::o;14666:53::-;14718:1;14666:53;:::o;9874:112::-;9931:7;9958:5;:14;;:20;9973:4;9958:20;;;;;;;;;;;;;;;;9951:27;;9874:112;;;:::o;8621:51::-;8671:1;8621:51;:::o;13611:55::-;13660:6;13611:55;:::o;14022:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10937:27::-;;;;;;;;;;;;;:::o;13985:30::-;;;;:::o;11179:122::-;8062:12;:10;:12::i;:::-;8051:23;;:7;:5;:7::i;:::-;:23;;;8043:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11285:8:::1;11270:12;;:23;;;;;;;;;;;;;;;;;;11179:122:::0;:::o;13878:27::-;;;;:::o;12602:89::-;;;;;;;;;;;;;;;;;;;;:::o;30934:447::-;31006:35;;:::i;:::-;31075:28;31091:11;31075:15;:28::i;:::-;31052:17;31070:1;31052:20;;;;;;;;;;:51;;;;;31135:6;:19;31142:11;31135:19;;;;;;;;;;;;;;;:37;;;31112:17;31130:1;31112:20;;;;;;;;;;:60;;;;;31204:6;:19;31211:11;31204:19;;;;;;;;;;;;;;;:35;;;31181:17;31199:1;31181:20;;;;;;;;;;:58;;;;;31271:6;:19;31278:11;31271:19;;;;;;;;;;;;;;;:26;;;31248:17;31266:1;31248:20;;;;;;;;;;:49;;;;;31330:42;31361:10;;31330:6;:19;31337:11;31330:19;;;;;;;;;;;;;;;:26;;;:30;;:42;;;;:::i;:::-;31307:17;31325:1;31307:20;;;;;;;;;;:65;;;;;30934:447;;;:::o;13912:29::-;;;;:::o;1480:179::-;1538:7;1558:9;1574:1;1570;:5;1558:17;;1599:1;1594;:6;;1586:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1650:1;1643:8;;;1480:179;;;;:::o;1845:220::-;1903:7;1932:1;1927;:6;1923:20;;;1942:1;1935:8;;;;1923:20;1954:9;1970:1;1966;:5;1954:17;;1999:1;1994;1990;:5;;;;;;:10;1982:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:1;2049:8;;;1845:220;;;;;:::o;2079:153::-;2137:7;2169:1;2165;:5;2157:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2223:1;2219;:5;;;;;;2212:12;;2079:153;;;;:::o;1673:158::-;1731:7;1764:1;1759;:6;;1751:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1822:1;1818;:5;1811:12;;1673:158;;;;:::o;16595:227::-;16664:7;16720:1;16688:7;:13;16696:4;16688:13;;;;;;;;;;;;;;;:28;;;:33;:48;;;;;16732:4;16725:11;;:3;:11;;;;16688:48;16684:91;;;16760:3;16753:10;;;;16684:91;16792:7;:13;16800:4;16792:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;16785:29;;16595:227;;;;;:::o;25459:797::-;25532:21;25556:7;:13;25564:4;25556:13;;;;;;;;;;;;;;;25532:37;;25606:15;25582:6;:21;;:39;;;;13317:2;25632:6;:11;;25644:1;25632:14;;;;;;;;:36;;;;25700:1;25679:6;:18;;:22;;;;25739:15;25712:6;:24;;:42;;;;25783:40;13317:2;25783:15;;:19;;:40;;;;:::i;:::-;25765:15;:58;;;;25834:12;;:14;;;;;;;;;;;;;25887:1;25865:24;;:10;:24;;;25861:344;;25924:10;25906:6;:15;;;:28;;;;;;;;;;;;;;;;;;25949:7;:19;25957:10;25949:19;;;;;;;;;;;;;;;:29;;25984:4;25949:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26050:1;26010:42;;:7;:19;26018:10;26010:19;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:42;;;26006:140;;26073:7;:37;26081:7;:19;26089:10;26081:19;;;;;;;;;;;;;;;:28;;;;;;;;;;;;26073:37;;;;;;;;;;;;;;;:55;;;:57;;;;;;;;;;;;;26006:140;26162:31;26182:10;26162:19;:31::i;:::-;25861:344;26237:10;26220:28;;26231:4;26220:28;;;;;;;;;;;;25459:797;;;:::o;24312:1139::-;24449:7;:5;:7::i;:::-;24433:34;;:77;13258:6;24490:3;13430:2;24468:3;:19;:25;;;;;;:41;;;;;;24433:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14617:42;24533:26;;:81;13258:6;24594:3;14718:1;24560:3;:31;:37;;;;;;:53;;;;;;24533:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24663:1;24641:24;;:10;:24;;;24637:807;;24682:23;24708:7;:19;24716:10;24708:19;;;;;;;;;;;;;;;24682:45;;24777:47;24814:9;24777:8;:32;;;:36;;:47;;;;:::i;:::-;24742:8;:32;;:82;;;;24839:31;24859:10;24839:19;:31::i;:::-;24901:10;24914;24901:23;;24944:6;24939:494;24970:1;24956:16;;:2;:16;;;;:57;;;;;24980:26;:33;;;;24976:1;:37;24956:57;24939:494;;;25039:14;25056:47;25099:3;25056:38;25064:26;25091:1;25064:29;;;;;;;;;;;;;;;;25056:3;:7;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;25039:64;;25149:36;25178:6;25149:7;:11;25157:2;25149:11;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;25122:7;:11;25130:2;25122:11;;;;;;;;;;;;;;;:24;;:63;;;;25225:67;25248:43;25287:3;25248:34;25256:22;25279:1;25256:25;;;;;;;;;;;;;;;;25248:3;:7;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;25225:7;:11;25233:2;25225:11;;;;;;;;;;;;;;;:18;;;:22;;:67;;;;:::i;:::-;25204:7;:11;25212:2;25204:11;;;;;;;;;;;;;;;:18;;:88;;;;25343:1;25339;:5;25335:2;25316:37;;25329:4;25316:37;;;25346:6;25316:37;;;;;;;;;;;;;;;;;;25397:7;:11;25405:2;25397:11;;;;;;;;;;;;;;;:20;;;;;;;;;;;;25392:25;;24939:494;25015:3;;;;;;;24939:494;;;;24637:807;;;24312:1139;;;;:::o;27067:425::-;27150:1;27134:18;;:4;:18;;;;:49;;;;;27157:5;:20;;:26;27178:4;27157:26;;;;;;;;;;;;;;;;;;;;;;;;;27156:27;27134:49;27130:355;;;27200:21;27224:7;:13;27232:4;27224:13;;;;;;;;;;;;;;;27200:37;;27283:7;27258:6;:21;;;:32;;:82;;;;;27338:2;27311:6;:16;;:23;;;;:29;;27258:82;:145;;;;;27395:8;27361:6;:30;;;:42;;27258:145;27254:220;;;27437:21;27453:4;27437:15;:21::i;:::-;27254:220;27130:355;;27067:425;:::o;90:107::-;148:7;180:1;175;:6;;:14;;188:1;175:14;;;184:1;175:14;168:21;;90:107;;;;:::o;2971:216::-;3031:4;3080:12;3144:7;3132:20;3124:28;;3178:1;3171:4;:8;3164:15;;;2971:216;;;:::o;26264:186::-;26341:21;26365:7;:13;26373:4;26365:13;;;;;;;;;;;;;;;26341:37;;26411:31;26435:6;26411;:19;;;:23;;:31;;;;:::i;:::-;26389:6;:19;;:53;;;;26264:186;;;:::o;26646:413::-;26722:7;26742:21;26766:7;:13;26774:4;26766:13;;;;;;;;;;;;;;;26742:37;;26792:11;26806:35;26815:6;26823;:17;;;26806:8;:35::i;:::-;26792:49;;26852:13;26868:58;26922:3;26868:49;13488:2;26888:3;:28;26868:15;26879:3;26868:6;:10;;:15;;;;:::i;:::-;:19;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;26852:74;;26959:26;26981:3;26959:6;:17;;;:21;;:26;;;;:::i;:::-;26939:6;:17;;:46;;;;26996:30;27014:4;27020:5;26996:17;:30::i;:::-;27046:5;27039:12;;;;;26646:413;;;;:::o;11309:138::-;11034:12;;;;;;;;;;;11020:26;;:10;:26;;;11012:35;;;;;;11378:31:::1;11396:12;;;;;;;;;;;11378:17;:31::i;:::-;11427:12;;11420:19;;;;;;;;;;;11309:138::o:0;7324:106::-;7377:15;7412:10;7405:17;;7324:106;:::o;10171:359::-;9139:24;:22;:24::i;:::-;10250:5:::1;:20;;:32;10271:10;10250:32;;;;;;;;;;;;;;;;;;;;;;;;;10242:74;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10329:14;10346:60;10355:21;10378:27;10394:10;10378:15;:27::i;:::-;10346:8;:60::i;:::-;10329:77;;10446:38;10477:6;10446:5;:14;;:26;10461:10;10446:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;10417:5;:14;;:26;10432:10;10417:26;;;;;;;;;;;;;;;:67;;;;10495:10;:19;;:27;10515:6;10495:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9174:1;10171:359::o:0;10538:353::-;9139:24;:22;:24::i;:::-;10626:5:::1;:20;;:26;10647:4;10626:26;;;;;;;;;;;;;;;;;;;;;;;;;10625:27;10617:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10732:4;10703:5;:20;;:26;10724:4;10703:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10770:5;:16;;;10747:5;:14;;:20;10762:4;10747:20;;;;;;;;;;;;;;;:39;;;;10819:26;10843:1;10819:5;:19:::0;::::1;;:23;;:26;;;;:::i;:::-;10797:5;:19:::0;::::1;:48;;;;10878:4;10861:22;;;;;;;;;;;;10538:353:::0;:::o;211:106::-;269:7;300:1;296;:5;:13;;308:1;296:13;;;304:1;296:13;289:20;;211:106;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://542b71195fb1bff550672c5fc5abfcfe412f0cdcf1e92eb741bb13b55d21de19
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.