Contract 0x608b0eba93eeaf69728150bd81c08d5ed1605afc

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5a8b9c2bdc3338ee88f90c95a49c9a0f9e85b77f4fc6d916d22af55527a89c60Transfer183493802022-08-07 22:12:098 days 2 hrs ago0x73849509343be15a52a14a5a9cc9ea3657fb1fed IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc20 AVAX0.‍0005579575 26.‍5
0x5eaf7cc5957bdb98105ab58872fb0f8e72d49a1e78996cf642b085bcae8b8ea4Approve Proposal182595462022-08-05 19:47:4710 days 5 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍006333626 26
0x7f99d33074ee6eb7e9ce14e5e09dd8df0aeefc7647d8a236d54c42ce2b094d50Approve Proposal182595352022-08-05 19:47:2510 days 5 hrs ago0x884439794efd171d0e7fbf0663abb79b396f5ac6 IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003826862 26
0xe455b6210e56757cc5cecbf566d00cb84d1e36e2694b29db132090cd8a979302Approve Proposal182595142022-08-05 19:46:4310 days 5 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍005526144 26
0x3d06c292444fc1a397fb21e9eccd7f70b4c9d806716766dd8270d444fdaacf48Approve Proposal182595002022-08-05 19:46:1510 days 5 hrs ago0x884439794efd171d0e7fbf0663abb79b396f5ac6 IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍002985268 26
0xe6307a31177b220f2df081acf57f2a6c9b23c4f15448538706443022707cc52cApprove Proposal182579032022-08-05 18:51:3910 days 6 hrs ago0x884439794efd171d0e7fbf0663abb79b396f5ac6 IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍005359666 26
0x38863367b8ecb38cd393d3b1a20f43a665da4419009f5e95e48065c53fd680bfApprove Proposal182578612022-08-05 18:50:1210 days 6 hrs ago0x884439794efd171d0e7fbf0663abb79b396f5ac6 IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍00510484 26
0x70479682c4397edad687ff4d97ed9a369117f5bc02ad47bac9dd869a9ca1408dApprove Proposal182571672022-08-05 18:26:4210 days 6 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍002985268 26
0xdb322f67f920fa7b31a0aa8f4bbaaba80ac30e7ea0602c156483ce4e79b2daf8Approve Proposal182571592022-08-05 18:26:2610 days 6 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍002985268 26
0xe1a8bfca2167fa950681c8840ba2f8d930a44a30a58ddf031984594f008ecd24Approve Proposal182569452022-08-05 18:19:1110 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003204708 26
0x26e3f6b90e4d8f42425af43c8e96d75c7a369a2d7ca127f1842dec2448cee543Add ERC20Transfe...182569362022-08-05 18:18:5310 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍009336028 26
0xb67da34ed43455cc2e0269b8af9c98489891d3a4394a4d12e356199298e3ed2aApprove Proposal182569042022-08-05 18:17:4910 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003204708 26
0xc3f70866324b62062dfb83f178b8c4a20f573b8a5dec5957e6eaf7780f327aa4Add ERC20Transfe...182568962022-08-05 18:17:3310 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍009336028 26
0xe098faa6a085a4d161a9f1afd25d2469c00918ee3814dad4c6cf5c76b568d74bApprove Proposal182568102022-08-05 18:14:3010 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍004046302 26
0x979cddf74530887b602f282d04a84b7ecb44bf0b65458c51d52eadb64f35db51Add Generic Batc...182567992022-08-05 18:14:0810 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍013444444 26
0x642a3d6ccdb04aca4575a1a108bff8945653cdbcfa08f9fb7f01bbbcb71210f3Approve Proposal182566462022-08-05 18:08:5810 days 6 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003204708 26
0x666dd09606148cece2e5f92dc1a259d648b17a0716131ff59b6aa7b22101d38bAdd ERC20Transfe...182565912022-08-05 18:07:0810 days 7 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍010225488 26
0x6685ae60a114dcb9e5a67bcdaf394cb040e1759279217c47c0ee048cacb80003Approve Proposal182098832022-08-04 15:48:4311 days 9 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍006001528 26
0x349d49fe3bd2a4a90ac74784f7b7eb6ac3f83353fc80cf65178a46da3c5678e8Approve Proposal182050452022-08-04 13:06:1611 days 12 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍004599192 26
0x4fa1552b9e00ceaae5361b44e85330ed35f4790b3e14663fd2daa41ce2042eceApprove Proposal182050362022-08-04 13:05:5811 days 12 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍004155892 26
0x60af681f52c7286e6fc0258857d4cfe10f9ec8d8245294ea1c7bdf780a035a7fApprove Proposal182048222022-08-04 12:58:4711 days 12 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍00330096 26
0x18131e9fc8326d2e63212026b3f672f7c68da36f5b1ff911b8c5354b7a54e10bApprove Proposal182048142022-08-04 12:58:3111 days 12 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003227718 26
0x61b0a80833b2a4e83ca9b740347bde7cd5adac3ce7ff6b27d548eb7bca128eecApprove Proposal182048082022-08-04 12:58:1911 days 12 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍003227718 26
0x2e21d422f7790c700986a6933321f6fd236aeacc365800edb95eaa17489cfafeApprove Proposal182048042022-08-04 12:58:1111 days 12 hrs ago0xe91b646715c175fc1cff73bbfd19b14848cc913b IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍02289131 26
0x7c8bf25e9ff63ccb5bfb8ac2e3b90603809a662ca918eb99c514c91e088d09b3Approve Proposal182047112022-08-04 12:55:0411 days 12 hrs ago0x2d7b286b95227f174b24f0c37e5d833236f10dfb IN  0x608b0eba93eeaf69728150bd81c08d5ed1605afc0 AVAX0.‍00510029 26
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x81e13957fbb0ec02031053ab56d5dd990cf394da029292ff5afc05068c724698186851642022-08-15 18:00:297 hrs 8 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍253394544204831917 AVAX
0x824543d3c54b64f95afd921d9bfc9aa71c2acbaa7c83ab24aa2f769855824cdf186835172022-08-15 17:05:358 hrs 3 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍115059393028716068 AVAX
0xfa1268717452ccffe09ecdfa2fe7adf51c5cbf0d8660366550f18074f883fbfe186818592022-08-15 16:10:068 hrs 58 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍062980679038541377 AVAX
0xbcf42df3d822c718e3fbd4cb3467686b28fd67515641b6ac6bd733b296fbd23b186782182022-08-15 14:08:1711 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍214782403150964775 AVAX
0x811324f373f9abc415d84e433c79c8313d987f6626006b8f4f20cfc2c9af0180186781042022-08-15 14:04:2911 hrs 4 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍082984274814280235 AVAX
0x3741fc04c296959a9ae1ffe1ab2d44e88cf6378db05a1657e4125ded999b805a186738412022-08-15 11:41:5213 hrs 26 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍000004757600081242 AVAX
0x3efdc89a4efcdd3605ddba0faef908524533df9ef138e77a31a7633ae776f9d3186208022022-08-14 5:58:041 day 19 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍066268462335126659 AVAX
0xe1871caabddbe93a1f56bdd1c8cbf2eef54e1d466eb6fb135d1f7c9c9f4e4d64186101542022-08-13 23:58:322 days 1 hr ago 0x68d2e2db5924b44ef851411825fd57d7ebfac5a7 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍776391891891891891 AVAX
0xb9969b5797730b3b47fa485ca9490f3175a97f50975acfffa9a465ecb98d66db185944812022-08-13 15:12:272 days 9 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍091520157265222576 AVAX
0xb236c5ece3e5ec198d810573b37feb91e14052faf501fc2956420a9c80f23a09185936012022-08-13 14:42:562 days 10 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍269631743334724936 AVAX
0x9cc772fe72a2f7a0f92fd48b5cdaf895fa29eeb7b69be306512fa27a2a373cfd185877842022-08-13 11:28:262 days 13 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍196932980760375116 AVAX
0x4e077d8ce3c048350e5fffafda960a5d806f45be522230cd25cb13fe5cff6629185809092022-08-13 7:37:072 days 17 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍021344393041168053 AVAX
0x1124895f001021849844ed6c3608d46c1e27e035705411923b5a4969a430c79a185799062022-08-13 7:03:182 days 18 hrs ago 0x68d2e2db5924b44ef851411825fd57d7ebfac5a7 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍388135135135135135 AVAX
0x800a3dfc733ac8ecefba5b60ff0fef57ac6ce6c23200ccaebcf3936a0f227ff8185681452022-08-13 0:28:363 days 40 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍166738189723558577 AVAX
0x911706be1a9731887649f93d17347b43ac1623e162f45737d2adbc8315234213185675532022-08-13 0:08:503 days 59 mins ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍813921559155128652 AVAX
0xfd38bb28c24ff0dac48b4522b7361da54c95611d7e05c1f4980747ae5fd7b59f185644012022-08-12 22:23:163 days 2 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍026725781327534001 AVAX
0x070d92736dd48469db0a6b4522c241148f05a947f1de106ac58689a8d4443a4e185617832022-08-12 20:55:343 days 4 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc8.‍977218127651834013 AVAX
0x2705628a4ef1de06c387cc0e61e2e1825467ab218bebb8c0de4f472ed2ca4a8b185609942022-08-12 20:29:043 days 4 hrs ago 0x68d2e2db5924b44ef851411825fd57d7ebfac5a7 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍388094594594594594 AVAX
0x3982773b4cdd69b8d2f0f06b08fbc03b3f0c864c1367c36af88803621a23f9bb185609552022-08-12 20:27:463 days 4 hrs ago 0x68d2e2db5924b44ef851411825fd57d7ebfac5a7 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍776067567567567567 AVAX
0x1792fc06a052972d54efb12d3bab23e0253986b70d12f15f0d399447c15f644c185608152022-08-12 20:22:583 days 4 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍17256695887146198 AVAX
0x287d569e38c7f46dbcdafc9b7e53cc253c8e819409e39ff8da5ab5ee3359e0bd185596662022-08-12 19:44:273 days 5 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc1.‍274707563062450092 AVAX
0x518b56303f0a6a7b9700ede19fb7f4f79805da2a68a65373b1e75043d479ac45185596552022-08-12 19:44:053 days 5 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc2.‍718270500260458527 AVAX
0x389a965a1fdc002e634a493be8451ab788c9925b224ae90a6c419e7b50e86b69185522032022-08-12 15:33:463 days 9 hrs ago 0x68d2e2db5924b44ef851411825fd57d7ebfac5a7 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍387972972972972972 AVAX
0xdec1e8e8e447dad8e55c5fb821287f15f6183350685dbd1ab1905d4cfb378342185521912022-08-12 15:33:213 days 9 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc2.‍033489430456101524 AVAX
0x70ef672f1f4fbf15800a817e2de8777c546ecfce123d3162818587c866ca7717185521442022-08-12 15:31:473 days 9 hrs ago 0x2e17fca445d909653da86a8d46a4ba822cd8075b 0x608b0eba93eeaf69728150bd81c08d5ed1605afc0.‍043672718323659794 AVAX
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
Multisig

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-05-21
*/

// SPDX-License-Identifier: MIT LICENSE

// File: @openzeppelin/contracts/utils/Address.sol


// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/Controllable.sol



pragma solidity 0.8.9;


contract Controllable is Ownable {
    mapping (address => bool) controllers;

    event ControllerAdded(address);
    event ControllerRemoved(address);

    modifier onlyController() {
        require(controllers[_msgSender()] || _msgSender() ==  owner(), "Only controllers can do that");
        _;
    }

    /*** ADMIN  ***/
    /**
     * enables an address to mint / burn
     * @param controller the address to enable
     */
    function addController(address controller) external onlyOwner {
        if (!controllers[controller]) {
            controllers[controller] = true;
            emit ControllerAdded(controller);
        }
    }

    /**
     * disables an address from minting / burning
     * @param controller the address to disbale
     */
    function removeController(address controller) external onlyOwner {
        if (controllers[controller]) {
            controllers[controller] = false;
            emit ControllerRemoved(controller);
        }
    }


}

// File: contracts/Multisig.sol



pragma solidity 0.8.9;



interface IMultisig {
    enum ProposalType{ COMMUNITY, TEAM, DEV }
    struct Proposal {
        address proposer;
        uint64 idx;
        uint64 creationTime;
        ProposalType proposalType;
        bool devVeto;
        bool inactive;
        bool executed;
        bool reverted;
        address[] devsFor;
        address[] teamFor;
        address[] communityFor;
        bytes4[] signature;
        address[] target;
        uint256[] value;
        string[] fun;
        bytes[] data;
        string revertReason;
    }
    event DevAdded(address a);
    event TeamAdded(address a);
    event CommunityAdded(address a);
    event DevRemoved(address a);
    event TeamRemoved(address a);
    event CommunityRemoved(address a);
    event ProposalCreated(uint256 timestamp, uint256 indexed id, ProposalType proposalType, address indexed proposer);
    event ProposalExecuted(uint256 timestamp, uint256 indexed id);
    event ProposalCanceled(uint256 timestamp, uint256 indexed id);
    event UserApproval(uint256 timestamp, uint256 indexed id);
    event UserDismissal(uint256 timestamp, uint256 indexed id);
}

contract Multisig is IMultisig {

    mapping (uint256 => Proposal) proposals;
    uint64[] activeProposals;
    uint64[] inactiveProposals;
    uint64 proposalCount;

    mapping (address => bool) devs;
    mapping (address => bool) team;
    mapping (address => bool) community;
    address[] public devList;
    address[] public teamList;
    address[] public communityList;

    uint32 constant DEV_PROPOSAL_DELAY = 120 seconds;
    uint32 constant TEAM_PROPOSAL_DELAY = 3 days;
    uint32 constant COMMUNITY_PROPOSAL_DELAY = 7 days;

    uint32 constant TYPE1_DELAY = 24 hours;
    uint32 constant TYPE2_DELAY = 72 hours;
    uint32 constant TYPE3_DELAY = 1 weeks;
    uint32 constant TYPE4_DELAY = 4 weeks;
    uint32 constant EXPIRATION_DELAY = 5 weeks;

    uint32 constant DEV_KICK_GRACE_DELAY = 180 days;
    uint32 constant TEAM_KICK_GRACE_DELAY = 120 days;
    uint32 constant COMMUNITY_KICK_GRACE_DELAY = 7 days;

    uint256 constant PROPOSAL_PRICE = 1 ether / 10;

    mapping (address => uint256) pingTime;

    modifier onlyWithRole() {
        require(_hasAnyRole(msg.sender), "Only members can do this");
        _;
    }

    modifier onlySelf() {
        require(msg.sender == address(this), "Only self please");
        _;
    }

    constructor(address[] memory _devs, address[] memory _team, address[] memory _community) {
        for (uint256 i = 0; i < _devs.length; i++) {
            _addDev(_devs[i]);
        }
        for (uint256 i = 0; i < _team.length; i++) {
            _addTeam(_team[i]);
        }
        for (uint256 i = 0; i < _community.length; i++) {
            _addCommunity(_community[i]);
        }
    }

    function ping() external {
        _ping(msg.sender);
    }

    function addDevMemberProposal(address _a) external payable onlyWithRole {
        require(!_hasAnyRole(_a), "This address already has a role");
        _ping(msg.sender);
        _addProposal(address(this), "addDev(address)", 0, abi.encode(_a));
    }

    function addTeamMemberProposal(address _a) external payable onlyWithRole {
        require(!_hasAnyRole(_a), "This address already has a role");
        _ping(msg.sender);
        _addProposal(address(this), "addTeam(address)", 0, abi.encode(_a));
    }

    function addCommunityMemberProposal(address _a) external payable onlyWithRole {
        require(!_hasAnyRole(_a), "This address already has a role");
        _ping(msg.sender);
        _addProposal(address(this), "addCommunity(address)", 0, abi.encode(_a));
    }

    function addRemoveDevMemberProposal(address _a) external payable onlyWithRole {
        require(devs[_a], "It is not a dev");
        require(pingTime[_a] + DEV_KICK_GRACE_DELAY < block.timestamp, "Dev is active");
        _ping(msg.sender);
        _addProposal(address(this), "removeDev(address)", 0, abi.encode(_a));
    }

    function addRemoveTeamMemberProposal(address _a) external payable onlyWithRole {
        require(team[_a], "It is not a team member");
        require(pingTime[_a] + TEAM_KICK_GRACE_DELAY < block.timestamp, "Team member is active");
        _ping(msg.sender);
        _addProposal(address(this), "removeTeam(address)", 0, abi.encode(_a));
    }

    function addRemoveCommunityMemberProposal(address _a) external payable onlyWithRole {
        require(community[_a], "It is not a community member");
        require(pingTime[_a] + COMMUNITY_KICK_GRACE_DELAY < block.timestamp, "Community member is active");
        _ping(msg.sender);
        _addProposal(address(this), "removeCommunity(address)", 0, abi.encode(_a));
    }

    function addWithdrawProposal(address _recipient, uint256 _value) external payable onlyWithRole {
        require(_recipient != address(this), "Don't call the multisig like that");
        _ping(msg.sender);
        _addProposal(_recipient, "", _value, bytes(""));
    }

    function addERC20TransferProposal(address _token, address _recipient, uint256 _amount) external payable onlyWithRole {
        require(_token != address(this), "Don't call the multisig like that");
        _ping(msg.sender);
        _addProposal(_token, "transfer(address,uint256)", 0, abi.encode(_recipient, _amount));
    }

    function addGenericProposal(address _target, string memory _fun, uint256 _value, bytes memory _data) external payable onlyWithRole {
        require(_target != address(this), "Don't call the multisig like that");
        for (uint256 i = 0; i < bytes(_fun).length; i++) {
            require(bytes(_fun)[i] != 0x20, "No spaces in fun please");
        }
        _ping(msg.sender);
        _addProposal(_target, _fun, _value, _data);
    }

    function addGenericBatchedProposal(address[] memory _target, string[] memory _fun, uint256[] memory _value, bytes[] memory _data) external payable onlyWithRole {
        for (uint256 i = 0; i < _target.length; i++) {
            require(_target[i] != address(this), "Don't call the multisig like that");
            for (uint256 j = 0; j < bytes(_fun[i]).length; j++) {
                require(bytes(_fun[i])[j] != 0x20, "No spaces in fun please");
            }
        }
        _ping(msg.sender);
        _addBatchedProposal(_target, _fun, _value, _data);
    }

    function approveProposal(uint256 _id) external onlyWithRole {
        Proposal memory tmp = proposals[_id];
        require(tmp.creationTime != 0, "Proposal does not exist");
        require(!tmp.inactive, "Already inactive");
        _ping(msg.sender);
        if (devs[msg.sender]) {
            require(!_isMemberOf(tmp.devsFor, msg.sender), "Already approved");
            proposals[_id].devsFor.push(msg.sender);
        } else if (team[msg.sender]) {
            require(!_isMemberOf(tmp.teamFor, msg.sender), "Already approved");
            proposals[_id].teamFor.push(msg.sender);
        } else if (community[msg.sender]) {
            require(!_isMemberOf(tmp.communityFor, msg.sender), "Already approved");
            proposals[_id].communityFor.push(msg.sender);
        }
        emit UserApproval(block.timestamp, _id);
        if (_executionAllowed(_id)) {
            _execute(_id);
        }
    }

    function dismissProposal(uint256 _id) external onlyWithRole {
        require(proposals[_id].creationTime != 0, "Proposal does not exist");
        require(!proposals[_id].inactive, "Already inactive");
        _ping(msg.sender);
        if (devs[msg.sender]) {
            proposals[_id].devsFor = _removeMemberFromList(proposals[_id].devsFor, msg.sender);
            proposals[_id].devVeto = true;
        } else if (team[msg.sender]) {
            require(_isMemberOf(proposals[_id].teamFor, msg.sender), "Did not vote for or already dismissed");
            proposals[_id].teamFor = _removeMemberFromList(proposals[_id].teamFor, msg.sender);
        } else if (community[msg.sender]) {
            require(_isMemberOf(proposals[_id].communityFor, msg.sender), "Did not vote for or already dismissed");
            proposals[_id].communityFor = _removeMemberFromList(proposals[_id].communityFor, msg.sender);
        }
        emit UserDismissal(block.timestamp, _id);
        if (_cancellationAllowed(_id)) {
            _cancel(_id);
        }
    }


    function executeProposal(uint256 _id) external onlyWithRole {
        _ping(msg.sender);
        _execute(_id);
    }

    function cancelProposal(uint256 _id) external onlyWithRole {
        _ping(msg.sender);
        _cancel(_id);
    }

    /*** SELF CALLS ***/

    function addDev(address _a) external onlySelf {
        require(!_hasAnyRole(_a), "This address already has a role");
        _addDev(_a);
    }
    function addTeam(address _a) external onlySelf {
        require(!_hasAnyRole(_a), "This address already has a role");
        _addTeam(_a);
    }
    function addCommunity(address _a) external onlySelf {
        require(!_hasAnyRole(_a), "This address already has a role");
        _addCommunity(_a);
    }

    function removeDev(address _a) external onlySelf {
        _removeDev(_a);
    }
    function removeTeam(address _a) external onlySelf {
        _removeTeam(_a);
    }
    function removeCommunity(address _a) external onlySelf {
        _removeCommunity(_a);
    }

    function executeOrRevert(uint256 _id) external onlySelf {
        string memory reason;
        for (uint256 i = 0; i < proposals[_id].target.length; i++){
            (bool success, bytes memory retData) = proposals[_id].target[i].call{value: proposals[_id].value[i]}(abi.encodePacked(proposals[_id].signature[i], proposals[_id].data[i]));
            reason = string(abi.encodePacked(reason,"|"));
            if (!success && retData.length >= 68) {
                assembly {
                    // Slice the sighash.
                    retData := add(retData, 0x04)
                }
                reason = string(abi.encodePacked(reason,abi.decode(retData, (string))));
            }
            if (!success) revert(reason);
        }
    }

    /*** GETTERS ***/

    function getPingTime(address _a) external view returns (uint256) {
        return pingTime[_a];
    }

    function isDev(address _a) external view returns (bool) {
        return devs[_a];
    }

    function isTeam(address _a) external view returns (bool) {
        return team[_a];
    }

    function isCommunity(address _a) external view returns (bool) {
        return community[_a];
    }

    function getDevCount() external view returns (uint256) {
        return devList.length;
    }

    function getTeamCount() external view returns (uint256) {
        return teamList.length;
    }

    function getCommunityCount() external view returns (uint256) {
        return communityList.length;
    }

    function getProposal(uint256 _id) external view returns (Proposal memory) {
        return proposals[_id];
    }

    function getProposalCount() external view returns (uint256) {
        return proposalCount;
    }

    function getActiveProposal(uint256 _id) external view returns (uint64) {
        return activeProposals[_id];
    }
    function getActiveProposalCount() external view returns (uint256) {
        return activeProposals.length;
    }

    function getInactiveProposal(uint256 _id) external view returns (uint64) {
        return inactiveProposals[_id];
    }
    function getInactiveProposalCount() external view returns (uint256) {
        return inactiveProposals.length;
    }

    function canBeExecuted(uint256 _id) external view returns (bool) {
        return _executionAllowed(_id);
    }

    function canBeCanceled(uint256 _id) external view returns (bool) {
        return _cancellationAllowed(_id);
    }

    /*** INTERNAL ***/

    function _ping(address _a) internal {
        pingTime[_a] = block.timestamp;
    }

    function _addDev(address _a) internal {
        require(!_hasAnyRole(_a), "This address already has a role");
        if (!devs[_a]) {
            _ping(_a);
            devs[_a] = true;
            devList.push(_a);
            emit DevAdded(_a);
        }
    }

    function _addTeam(address _a) internal {
        require(!_hasAnyRole(_a), "This address already has a role");
        if (!team[_a]) {
            _ping(_a);
            team[_a] = true;
            teamList.push(_a);
            emit TeamAdded(_a);
        }
    }

    function _addCommunity(address _a) internal {
        require(!_hasAnyRole(_a), "This address already has a role");
        if (!community[_a]) {
            _ping(_a);
            community[_a] = true;
            communityList.push(_a);
            emit CommunityAdded(_a);
        }
    }

    function _removeDev(address _a) internal {
        require(devList.length > 1, "At least 1 dev member should remain");
        require(pingTime[_a] + COMMUNITY_KICK_GRACE_DELAY < block.timestamp, "Dev is active");
        if (devs[_a]) {
            devs[_a] = false;
            for (uint256 i = 0; i < devList.length; i++) {
                if (devList[i] == _a) {
                    devList[i] = devList[devList.length - 1];
                    devList.pop();
                    break;
                }
            }
            emit DevRemoved(_a);
        }
    }

    function _removeTeam(address _a) internal {
        require(teamList.length > 1, "At least 1 team member should remain");
        require(pingTime[_a] + TEAM_KICK_GRACE_DELAY < block.timestamp, "Team member is active");
        if (team[_a]) {
            team[_a] = false;
            for (uint256 i = 0; i < teamList.length; i++) {
                if (teamList[i] == _a) {
                    teamList[i] = teamList[teamList.length - 1];
                    teamList.pop();
                    break;
                }
            }
            emit TeamRemoved(_a);
        }
    }

    function _removeCommunity(address _a) internal {
        require(communityList.length > 1, "At least 1 community member should remain");
        require(pingTime[_a] + COMMUNITY_KICK_GRACE_DELAY < block.timestamp, "Community member is active");
        if (community[_a]) {
            community[_a] = false;
            for (uint256 i = 0; i < communityList.length; i++) {
                if (communityList[i] == _a) {
                    communityList[i] = communityList[communityList.length - 1];
                    communityList.pop();
                    break;
                }
            }
            emit CommunityRemoved(_a);
        }
    }

    function _addProposal(address _target, string memory _fun, uint256 _value, bytes memory _data) internal {
        address[] memory target = new address[](1);
        target[0] = _target;
        string[] memory fun = new string[](1);
        fun[0] = _fun;
        uint256[] memory value = new uint256[](1);
        value[0] = _value;
        bytes[] memory data = new bytes[](1);
        data[0] = _data;
        _addBatchedProposal(target, fun, value, data);
    }

    function _addBatchedProposal(address[] memory _target, string[] memory _fun, uint256[] memory _value, bytes[] memory _data) internal {
        require(devs[msg.sender] || team[msg.sender] || community[msg.sender], "Only members can do this");
        require(_target.length == _fun.length && _fun.length == _value.length && _value.length == _data.length, "Params must be the same length");
        proposalCount++;
        Proposal memory tmp;
        tmp.creationTime = uint64(block.timestamp);
        tmp.proposalType = ProposalType.COMMUNITY;
        if (team[msg.sender]) tmp.proposalType = ProposalType.TEAM;
        if (devs[msg.sender]) tmp.proposalType = ProposalType.DEV;
        require(tmp.proposalType != ProposalType.COMMUNITY && msg.value == 0 || msg.value == PROPOSAL_PRICE, "Pay exact proposal price");

        tmp.signature = new bytes4[](_target.length);
        tmp.data = _data;
        tmp.proposer = msg.sender;
        tmp.target = _target;
        tmp.value = _value;
        tmp.fun = _fun;

        for (uint256 i = 0; i < _fun.length; i++) {
            require(bytes(_fun[i]).length == 0 || bytes(_fun[i]).length >=3, "provide a valid function specification");
            if (bytes(_fun[i]).length != 0) {
                tmp.signature[i] = (bytes4(keccak256(bytes(_fun[i]))));
            } else {
                tmp.signature[i] = "";
            }
        }
        tmp.idx = uint64(activeProposals.length);
        proposals[proposalCount] = tmp;
        activeProposals.push(proposalCount);
        emit ProposalCreated(uint64(block.timestamp), proposalCount, tmp.proposalType, msg.sender);
    }

    function _execute(uint256 _id) internal {
        require(proposals[_id].creationTime != 0, "Proposal does not exist");
        require(_executionAllowed(_id), "Execution not allowed");
        _inactivateProposal(_id);
        proposals[_id].executed = true;

        (bool success, bytes memory retData) = address(this).call{value: 0}(abi.encodeWithSignature("executeOrRevert(uint256)", _id));
        proposals[_id].reverted = !success;
        if (!success && retData.length >= 68) {
            assembly {
                // Slice the sighash.
                retData := add(retData, 0x04)
            }
            proposals[_id].revertReason = abi.decode(retData, (string));
        }
        emit ProposalExecuted(uint64(block.timestamp), uint64(_id));
    }

    function _cancel(uint256 _id) internal {
        require(proposals[_id].creationTime != 0, "Proposal does not exist");
        require(_cancellationAllowed(_id), "Cancellation not allowed");
        _inactivateProposal(_id);
        emit ProposalCanceled(uint64(block.timestamp), uint64(_id));
    }

    function _inactivateProposal(uint256 _id) internal {
        require(!proposals[_id].inactive, "Already inactive");
        proposals[_id].inactive = true;
        if (proposals[_id].idx != activeProposals.length - 1) {
            proposals[activeProposals[activeProposals.length - 1]].idx = proposals[_id].idx;
            activeProposals[proposals[_id].idx] = activeProposals[activeProposals.length - 1];
        }
        proposals[_id].idx = uint64(inactiveProposals.length);
        inactiveProposals.push(uint64(_id));
        activeProposals.pop();
    }

    function _executionAllowed(uint256 _id) internal view returns (bool) {
        Proposal memory tmp = proposals[_id];
        require(tmp.creationTime > 0, "Proposal does not exist");
        require(!tmp.inactive, "Already inactive");
        if (tmp.devVeto) return false;
        uint256 startTime = tmp.creationTime;

        if (tmp.proposalType == ProposalType.COMMUNITY) {
            startTime += COMMUNITY_PROPOSAL_DELAY;
        } else if (tmp.proposalType == ProposalType.TEAM) {
            startTime += TEAM_PROPOSAL_DELAY;
        } else if (tmp.proposalType == ProposalType.DEV) {
            startTime += DEV_PROPOSAL_DELAY;
        }
        // dont run after expiration
        if (block.timestamp >= startTime + EXPIRATION_DELAY) return false;

        uint256 df = tmp.devsFor.length;

        if (block.timestamp >= tmp.creationTime + DEV_PROPOSAL_DELAY && df >= devList.length) return true;

        // dont allow before start
        if (block.timestamp < startTime) return false;
        uint256 tf = tmp.teamFor.length;
        uint256 cf = tmp.communityFor.length;
        uint256 ct = 1;
        if (communityList.length > ct + 2) ct = communityList.length - 2;
        if (ct > 3) ct = 3;
        if (block.timestamp > startTime && df >= (devList.length <= 2 ? 2 : devList.length - 1)) return true;
        if (block.timestamp > startTime + TYPE1_DELAY && df >= 1 && tf >= 1 && cf >= ct) return true;
        if (block.timestamp > startTime + TYPE2_DELAY && df >= 1 && tf >= 1 && cf >= 1) return true;
        if (block.timestamp > startTime + TYPE2_DELAY && df >= 1 && cf >= ct) return true;
        ct = 1;
        if (communityList.length > ct + 2) ct = communityList.length - 2;
        if (ct > 4) ct = 4;
        if (block.timestamp > startTime + TYPE3_DELAY && tf >= 1 && cf >= ct) return true;
        if (block.timestamp > startTime + TYPE4_DELAY && cf >= communityList.length - 1) return true;
        return false;
    }

    function _cancellationAllowed(uint256 _id) internal view returns (bool) {
        Proposal memory tmp = proposals[_id];
        require(tmp.creationTime > 0, "Proposal does not exist");
        require(!tmp.inactive, "Already inactive");
        if (tmp.devVeto) return true;
        uint256 startTime = tmp.creationTime;
        if (tmp.proposalType == ProposalType.COMMUNITY) {
            startTime += COMMUNITY_PROPOSAL_DELAY;
        } else if (tmp.proposalType == ProposalType.TEAM) {
            startTime += TEAM_PROPOSAL_DELAY;
        } else if (tmp.proposalType == ProposalType.DEV) {
            startTime += DEV_PROPOSAL_DELAY;
        }
        if (block.timestamp >= startTime + EXPIRATION_DELAY) return true;
        return false;
    }

    function _hasAnyRole(address _a) internal view returns (bool) {
        return devs[_a] || team[_a] || community[_a];
    }

    /***  HELPERS ***/

    function _isMemberOf(address[] memory _list, address _a) internal pure returns (bool) {
        for (uint256 i = 0; i < _list.length; i++) {
            if (_list[i] == _a) return true;
        }
        return false;
    }
    function _removeMemberFromList(address[] memory _list, address _a) internal pure returns (address[] memory) {
        if (!_isMemberOf(_list, _a) || _list.length == 0) return _list;
        address[] memory tmp = new address[](_list.length - 1);
        uint256 i = 0;
        uint256 j = 0;
        for (; i < _list.length; i++) {
            if (_list[i] != _a) {
                tmp[j] = _list[i];
                j++;
            }
        }
        return tmp;
    }

    fallback() external payable {}

    receive() external payable {}
}

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_devs","type":"address[]"},{"internalType":"address[]","name":"_team","type":"address[]"},{"internalType":"address[]","name":"_community","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"CommunityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"CommunityRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"DevAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"DevRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IMultisig.ProposalType","name":"proposalType","type":"uint8"},{"indexed":true,"internalType":"address","name":"proposer","type":"address"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"TeamAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"TeamRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"UserApproval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"UserDismissal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addCommunity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addCommunityMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addDevMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addERC20TransferProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_target","type":"address[]"},{"internalType":"string[]","name":"_fun","type":"string[]"},{"internalType":"uint256[]","name":"_value","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"name":"addGenericBatchedProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"string","name":"_fun","type":"string"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"addGenericProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addRemoveCommunityMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addRemoveDevMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addRemoveTeamMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addTeamMemberProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"addWithdrawProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"approveProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"canBeCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"canBeExecuted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"cancelProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"communityList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"devList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"dismissProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"executeOrRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"executeProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getActiveProposal","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActiveProposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCommunityCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDevCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getInactiveProposal","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInactiveProposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"getPingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getProposal","outputs":[{"components":[{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint64","name":"idx","type":"uint64"},{"internalType":"uint64","name":"creationTime","type":"uint64"},{"internalType":"enum IMultisig.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"bool","name":"devVeto","type":"bool"},{"internalType":"bool","name":"inactive","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"address[]","name":"devsFor","type":"address[]"},{"internalType":"address[]","name":"teamFor","type":"address[]"},{"internalType":"address[]","name":"communityFor","type":"address[]"},{"internalType":"bytes4[]","name":"signature","type":"bytes4[]"},{"internalType":"address[]","name":"target","type":"address[]"},{"internalType":"uint256[]","name":"value","type":"uint256[]"},{"internalType":"string[]","name":"fun","type":"string[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"},{"internalType":"string","name":"revertReason","type":"string"}],"internalType":"struct IMultisig.Proposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTeamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"isCommunity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"isDev","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"isTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"removeCommunity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"removeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"removeTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"teamList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162006697380380620066978339810160408190526200003491620005e8565b60005b835181101562000083576200006e8482815181106200005a576200005a62000679565b60200260200101516200012d60201b60201c565b806200007a816200068f565b91505062000037565b5060005b8251811015620000d357620000be838281518110620000aa57620000aa62000679565b60200260200101516200025a60201b60201c565b80620000ca816200068f565b91505062000087565b5060005b815181101562000123576200010e828281518110620000fa57620000fa62000679565b60200260200101516200037c60201b60201c565b806200011a816200068f565b915050620000d7565b50505050620006b9565b62000138816200049e565b156200017a5760405162461bcd60e51b815260206004820152601f60248201526000805160206200667783398151915260448201526064015b60405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff166200025757620001bc816001600160a01b03166000908152600a60205260409020429055565b6001600160a01b0381166000818152600460209081526040808320805460ff191660019081179091556007805491820181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b0319168417905590519182527f62bdcff6770832ed27a318b408d43d6b8454fbca399faa678141178eb9298ddb91015b60405180910390a15b50565b62000265816200049e565b15620002a35760405162461bcd60e51b815260206004820152601f602482015260008051602062006677833981519152604482015260640162000171565b6001600160a01b03811660009081526005602052604090205460ff166200025757620002e5816001600160a01b03166000908152600a60205260409020429055565b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556008805491820181559093527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee390920180546001600160a01b0319168417905590519182527f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc91016200024e565b62000387816200049e565b15620003c55760405162461bcd60e51b815260206004820152601f602482015260008051602062006677833981519152604482015260640162000171565b6001600160a01b03811660009081526006602052604090205460ff16620002575762000407816001600160a01b03166000908152600a60205260409020429055565b6001600160a01b0381166000818152600660209081526040808320805460ff191660019081179091556009805491820181559093527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af90920180546001600160a01b0319168417905590519182527f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391016200024e565b6001600160a01b03811660009081526004602052604081205460ff1680620004de57506001600160a01b03821660009081526005602052604090205460ff165b806200050257506001600160a01b03821660009081526006602052604090205460ff165b92915050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200053657600080fd5b919050565b600082601f8301126200054d57600080fd5b815160206001600160401b03808311156200056c576200056c62000508565b8260051b604051601f19603f8301168101818110848211171562000594576200059462000508565b604052938452858101830193838101925087851115620005b357600080fd5b83870191505b84821015620005dd57620005cd826200051e565b83529183019190830190620005b9565b979650505050505050565b600080600060608486031215620005fe57600080fd5b83516001600160401b03808211156200061657600080fd5b62000624878388016200053b565b945060208601519150808211156200063b57600080fd5b62000649878388016200053b565b935060408601519150808211156200066057600080fd5b506200066f868287016200053b565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b6000600019821415620006b257634e487b7160e01b600052601160045260246000fd5b5060010190565b615fae80620006c96000396000f3fe6080604052600436106102275760003560e01c806398951b5611610122578063c122b3cb116100a5578063e05d78181161006c578063e05d7818146106b2578063e0a8f6f5146106c5578063e2ff4298146106e5578063e546d9c4146106f8578063fb49b24b1461071857005b8063c122b3cb14610610578063c4026d7b14610625578063c7f758a814610645578063d36afe6614610672578063d57a4a4a1461069257005b8063b1925007116100e9578063b19250071461057d578063b19c01db1461059d578063b463a75c146105b2578063b91d3ace146105d2578063c08cc02d146105f257005b806398951b56146104dc5780639905a9f7146104fc578063993fa20b146105115780639dc0dc1e1461054a578063a681b7ba1461055d57005b806349888822116101aa578063624dfb6311610171578063624dfb631461043e5780637347d9ed146104765780637986b459146104895780638c2a593a1461049c57806392634540146104bc57005b806349888822146103cc57806350be74b3146103df5780635c36b186146103f45780635e6a61ce146104095780636232db751461041e57005b8063248123fd116101ee578063248123fd14610316578063248519141461035a5780633188185514610393578063351dda69146103a657806336061f9f146103b957005b80630c3f64bf146102305780630cdc92ea1461027e5780630d61b5191461029e57806319aa69b9146102be5780631f3dc8c3146102f657005b3661022e57005b005b34801561023c57600080fd5b5061026961024b36600461533e565b6001600160a01b031660009081526004602052604090205460ff1690565b60405190151581526020015b60405180910390f35b34801561028a57600080fd5b50610269610299366004615360565b61072b565b3480156102aa57600080fd5b5061022e6102b9366004615360565b61073c565b3480156102ca57600080fd5b506102de6102d9366004615360565b61077f565b6040516001600160a01b039091168152602001610275565b34801561030257600080fd5b5061022e610311366004615360565b6107a9565b34801561032257600080fd5b5061034c61033136600461533e565b6001600160a01b03166000908152600a602052604090205490565b604051908152602001610275565b34801561036657600080fd5b5061026961037536600461533e565b6001600160a01b031660009081526005602052604090205460ff1690565b61022e6103a136600461533e565b610bd8565b61022e6103b436600461533e565b610c8e565b61022e6103c736600461533e565b610df6565b61022e6103da366004615379565b610e9e565b3480156103eb57600080fd5b5060025461034c565b34801561040057600080fd5b5061022e610f5d565b34801561041557600080fd5b5060015461034c565b34801561042a57600080fd5b5061022e61043936600461533e565b610f68565b34801561044a57600080fd5b5061045e610459366004615360565b610fb6565b6040516001600160401b039091168152602001610275565b61022e61048436600461533e565b610ffb565b61022e610497366004615478565b61109e565b3480156104a857600080fd5b506102696104b7366004615360565b611195565b3480156104c857600080fd5b5061022e6104d736600461533e565b6111a0565b3480156104e857600080fd5b5061022e6104f7366004615360565b6111c8565b34801561050857600080fd5b5060085461034c565b34801561051d57600080fd5b5061026961052c36600461533e565b6001600160a01b031660009081526006602052604090205460ff1690565b61022e6105583660046154f5565b61197b565b34801561056957600080fd5b506102de610578366004615360565b6119fc565b34801561058957600080fd5b5061022e610598366004615360565b611a0c565b3480156105a957600080fd5b5060075461034c565b3480156105be57600080fd5b5061022e6105cd36600461533e565b611c49565b3480156105de57600080fd5b5061022e6105ed36600461533e565b611c97565b3480156105fe57600080fd5b506003546001600160401b031661034c565b34801561061c57600080fd5b5060095461034c565b34801561063157600080fd5b5061022e61064036600461533e565b611ce5565b34801561065157600080fd5b50610665610660366004615360565b611d0d565b60405161027591906156b2565b34801561067e57600080fd5b506102de61068d366004615360565b612296565b34801561069e57600080fd5b5061045e6106ad366004615360565b6122a6565b61022e6106c036600461533e565b6122bb565b3480156106d157600080fd5b5061022e6106e0366004615360565b6123fa565b61022e6106f33660046159f8565b612431565b34801561070457600080fd5b5061022e61071336600461533e565b612595565b61022e61072636600461533e565b6125bd565b600061073682612713565b92915050565b61074533612daf565b61076a5760405162461bcd60e51b815260040161076190615af4565b60405180910390fd5b61077333612e13565b61077c81612e2f565b50565b6008818154811061078f57600080fd5b6000918252602090912001546001600160a01b0316905081565b6107b233612daf565b6107ce5760405162461bcd60e51b815260040161076190615af4565b6000818152602081905260409020600101546001600160401b03166108055760405162461bcd60e51b815260040161076190615b2b565b600081815260208190526040902060010154600160501b900460ff161561083e5760405162461bcd60e51b815260040161076190615b62565b61084733612e13565b3360009081526004602052604090205460ff161561091f576000818152602081815260409182902060020180548351818402810184019094528084526108cc93928301828280156108c157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108a3575b505050505033613030565b60008281526020818152604090912082516108f1936002909201929190910190614fa1565b506000818152602081905260409020600101805469ff0000000000000000001916600160481b179055610b87565b3360009081526005602052604090205460ff1615610a56576000818152602081815260409182902060030180548351818402810184019094528084526109a4939283018282801561099957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161097b575b505050505033613153565b6109c05760405162461bcd60e51b815260040161076190615b8c565b600081815260208181526040918290206003018054835181840281018401909452808452610a2b93928301828280156108c1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108a357505050505033613030565b6000828152602081815260409091208251610a50936003909201929190910190614fa1565b50610b87565b3360009081526006602052604090205460ff1615610b8757600081815260208181526040918290206004018054835181840281018401909452808452610ad99392830182828015610999576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161097b57505050505033613153565b610af55760405162461bcd60e51b815260040161076190615b8c565b600081815260208181526040918290206004018054835181840281018401909452808452610b6093928301828280156108c1576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116108a357505050505033613030565b6000828152602081815260409091208251610b85936004909201929190910190614fa1565b505b807fae98e60326f4f5b5b56e640ace27f530fda97f710c1a1f44dee30ac061362e5742604051610bb991815260200190565b60405180910390a2610bca81612713565b1561077c5761077c816131af565b610be133612daf565b610bfd5760405162461bcd60e51b815260040161076190615af4565b610c0681612daf565b15610c235760405162461bcd60e51b815260040161076190615bd1565b610c2c33612e13565b61077c306040518060400160405280600f81526020016e61646444657628616464726573732960881b815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b604051602081830303815290604052613287565b610c9733612daf565b610cb35760405162461bcd60e51b815260040161076190615af4565b6001600160a01b03811660009081526006602052604090205460ff16610d1b5760405162461bcd60e51b815260206004820152601c60248201527f4974206973206e6f74206120636f6d6d756e697479206d656d626572000000006044820152606401610761565b6001600160a01b0381166000908152600a60205260409020544290610d449062093a8090615c1e565b10610d915760405162461bcd60e51b815260206004820152601a60248201527f436f6d6d756e697479206d656d626572206973206163746976650000000000006044820152606401610761565b610d9a33612e13565b61077c306040518060400160405280601881526020017f72656d6f7665436f6d6d756e6974792861646472657373290000000000000000815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b610dff33612daf565b610e1b5760405162461bcd60e51b815260040161076190615af4565b610e2481612daf565b15610e415760405162461bcd60e51b815260040161076190615bd1565b610e4a33612e13565b61077c3060405180604001604052806015815260200174616464436f6d6d756e69747928616464726573732960581b815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b610ea733612daf565b610ec35760405162461bcd60e51b815260040161076190615af4565b6001600160a01b038316301415610eec5760405162461bcd60e51b815260040161076190615c36565b610ef533612e13565b610f58836040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e74323536290000000000000081525060008585604051602001610c7a9291906001600160a01b03929092168252602082015260400190565b505050565b610f6633612e13565b565b333014610f875760405162461bcd60e51b815260040161076190615c77565b610f9081612daf565b15610fad5760405162461bcd60e51b815260040161076190615bd1565b61077c816133c9565b600060028281548110610fcb57610fcb615ca1565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b61100433612daf565b6110205760405162461bcd60e51b815260040161076190615af4565b61102981612daf565b156110465760405162461bcd60e51b815260040161076190615bd1565b61104f33612e13565b61077c306040518060400160405280601081526020016f6164645465616d28616464726573732960801b815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b6110a733612daf565b6110c35760405162461bcd60e51b815260040161076190615af4565b6001600160a01b0384163014156110ec5760405162461bcd60e51b815260040161076190615c36565b60005b83518110156111795783818151811061110a5761110a615ca1565b6020910101516001600160f81b031916600160fd1b14156111675760405162461bcd60e51b81526020600482015260176024820152764e6f2073706163657320696e2066756e20706c6561736560481b6044820152606401610761565b8061117181615cb7565b9150506110ef565b5061118333612e13565b61118f84848484613287565b50505050565b6000610736826134b5565b3330146111bf5760405162461bcd60e51b815260040161076190615c77565b61077c81613da9565b6111d133612daf565b6111ed5760405162461bcd60e51b815260040161076190615af4565b60008181526020818152604080832081516102208101835281546001600160a01b0381168252600160a01b90046001600160401b039081169482019490945260018201549384169281019290925290916060830190600160401b900460ff16600281111561125d5761125d61551f565b600281111561126e5761126e61551f565b8152600182015460ff600160481b820481161515602080850191909152600160501b830482161515604080860191909152600160581b8404831615156060860152600160601b9093049091161515608084015260028401805483518184028101840190945280845260a090940193909183018282801561131757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112f9575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561137957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161135b575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156113db57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113bd575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561146057602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116114225790505b50505050508152602001600682018054806020026020016040519081016040528092919081815260200182805480156114c257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114a4575b505050505081526020016007820180548060200260200160405190810160405280929190818152602001828054801561151a57602002820191906000526020600020905b815481526020019060010190808311611506575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b828210156115f457838290600052602060002001805461156790615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461159390615cd2565b80156115e05780601f106115b5576101008083540402835291602001916115e0565b820191906000526020600020905b8154815290600101906020018083116115c357829003601f168201915b505050505081526020019060010190611548565b50505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b828210156116cd57838290600052602060002001805461164090615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461166c90615cd2565b80156116b95780601f1061168e576101008083540402835291602001916116b9565b820191906000526020600020905b81548152906001019060200180831161169c57829003601f168201915b505050505081526020019060010190611621565b505050508152602001600a820180546116e590615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461171190615cd2565b801561175e5780601f106117335761010080835404028352916020019161175e565b820191906000526020600020905b81548152906001019060200180831161174157829003601f168201915b505050505081525050905080604001516001600160401b0316600014156117975760405162461bcd60e51b815260040161076190615b2b565b8060a00151156117b95760405162461bcd60e51b815260040161076190615b62565b6117c233612e13565b3360009081526004602052604090205460ff161561183a576117e981610100015133613153565b156118065760405162461bcd60e51b815260040161076190615d0d565b6000828152602081815260408220600201805460018101825590835291200180546001600160a01b03191633179055611926565b3360009081526005602052604090205460ff16156118b25761186181610120015133613153565b1561187e5760405162461bcd60e51b815260040161076190615d0d565b6000828152602081815260408220600301805460018101825590835291200180546001600160a01b03191633179055611926565b3360009081526006602052604090205460ff1615611926576118d981610140015133613153565b156118f65760405162461bcd60e51b815260040161076190615d0d565b6000828152602081815260408220600401805460018101825590835291200180546001600160a01b031916331790555b817ff1204e138c7a8ebf3e2e1625629e4d3af790fe79b5ecd608c78c809cf063aaab4260405161195891815260200190565b60405180910390a2611969826134b5565b156119775761197782612e2f565b5050565b61198433612daf565b6119a05760405162461bcd60e51b815260040161076190615af4565b6001600160a01b0382163014156119c95760405162461bcd60e51b815260040161076190615c36565b6119d233612e13565b61197782604051806020016040528060008152508360405180602001604052806000815250613287565b6009818154811061078f57600080fd5b333014611a2b5760405162461bcd60e51b815260040161076190615c77565b606060005b600083815260208190526040902060060154811015610f58576000838152602081905260408120600601805482919084908110611a6f57611a6f615ca1565b600091825260208083209091015487835290829052604090912060070180546001600160a01b039092169185908110611aaa57611aaa615ca1565b90600052602060002001546000808881526020019081526020016000206005018581548110611adb57611adb615ca1565b90600052602060002090600891828204019190066004029054906101000a900460e01b6000808981526020019081526020016000206009018681548110611b2457611b24615ca1565b90600052602060002001604051602001611b3f929190615d37565b60408051601f1981840301815290829052611b5991615dec565b60006040518083038185875af1925050503d8060008114611b96576040519150601f19603f3d011682016040523d82523d6000602084013e611b9b565b606091505b509150915083604051602001611bb19190615e08565b604051602081830303815290604052935081158015611bd257506044815110155b15611c15576004810190508381806020019051810190611bf29190615e2d565b604051602001611c03929190615ea3565b60405160208183030381529060405293505b81611c34578360405162461bcd60e51b81526004016107619190615ed2565b50508080611c4190615cb7565b915050611a30565b333014611c685760405162461bcd60e51b815260040161076190615c77565b611c7181612daf565b15611c8e5760405162461bcd60e51b815260040161076190615bd1565b61077c81614005565b333014611cb65760405162461bcd60e51b815260040161076190615c77565b611cbf81612daf565b15611cdc5760405162461bcd60e51b815260040161076190615bd1565b61077c816140ea565b333014611d045760405162461bcd60e51b815260040161076190615c77565b61077c816141cf565b611d15615006565b6000828152602081815260409182902082516102208101845281546001600160a01b0381168252600160a01b90046001600160401b0390811693820193909352600182015492831693810193909352906060830190600160401b900460ff166002811115611d8557611d8561551f565b6002811115611d9657611d9661551f565b8152600182015460ff600160481b820481161515602080850191909152600160501b830482161515604080860191909152600160581b8404831615156060860152600160601b9093049091161515608084015260028401805483518184028101840190945280845260a0909401939091830182828015611e3f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e21575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611ea157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e83575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015611f0357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ee5575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015611f8857602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411611f4a5790505b5050505050815260200160068201805480602002602001604051908101604052809291908181526020018280548015611fea57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fcc575b505050505081526020016007820180548060200260200160405190810160405280929190818152602001828054801561204257602002820191906000526020600020905b81548152602001906001019080831161202e575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b8282101561211c57838290600052602060002001805461208f90615cd2565b80601f01602080910402602001604051908101604052809291908181526020018280546120bb90615cd2565b80156121085780601f106120dd57610100808354040283529160200191612108565b820191906000526020600020905b8154815290600101906020018083116120eb57829003601f168201915b505050505081526020019060010190612070565b50505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b828210156121f557838290600052602060002001805461216890615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461219490615cd2565b80156121e15780601f106121b6576101008083540402835291602001916121e1565b820191906000526020600020905b8154815290600101906020018083116121c457829003601f168201915b505050505081526020019060010190612149565b505050508152602001600a8201805461220d90615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461223990615cd2565b80156122865780601f1061225b57610100808354040283529160200191612286565b820191906000526020600020905b81548152906001019060200180831161226957829003601f168201915b5050505050815250509050919050565b6007818154811061078f57600080fd5b600060018281548110610fcb57610fcb615ca1565b6122c433612daf565b6122e05760405162461bcd60e51b815260040161076190615af4565b6001600160a01b03811660009081526004602052604090205460ff1661233a5760405162461bcd60e51b815260206004820152600f60248201526e24ba1034b9903737ba1030903232bb60891b6044820152606401610761565b6001600160a01b0381166000908152600a602052604090205442906123639062ed4e0090615c1e565b106123a05760405162461bcd60e51b815260206004820152600d60248201526c4465762069732061637469766560981b6044820152606401610761565b6123a933612e13565b61077c306040518060400160405280601281526020017172656d6f766544657628616464726573732960701b815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b61240333612daf565b61241f5760405162461bcd60e51b815260040161076190615af4565b61242833612e13565b61077c816131af565b61243a33612daf565b6124565760405162461bcd60e51b815260040161076190615af4565b60005b845181101561257f57306001600160a01b031685828151811061247e5761247e615ca1565b60200260200101516001600160a01b031614156124ad5760405162461bcd60e51b815260040161076190615c36565b60005b8482815181106124c2576124c2615ca1565b60200260200101515181101561256c578482815181106124e4576124e4615ca1565b602002602001015181815181106124fd576124fd615ca1565b6020910101516001600160f81b031916600160fd1b141561255a5760405162461bcd60e51b81526020600482015260176024820152764e6f2073706163657320696e2066756e20706c6561736560481b6044820152606401610761565b8061256481615cb7565b9150506124b0565b508061257781615cb7565b915050612459565b5061258933612e13565b61118f84848484614415565b3330146125b45760405162461bcd60e51b815260040161076190615c77565b61077c81614aac565b6125c633612daf565b6125e25760405162461bcd60e51b815260040161076190615af4565b6001600160a01b03811660009081526005602052604090205460ff1661264a5760405162461bcd60e51b815260206004820152601760248201527f4974206973206e6f742061207465616d206d656d6265720000000000000000006044820152606401610761565b6001600160a01b0381166000908152600a6020526040902054429061267390629e340090615c1e565b106126b85760405162461bcd60e51b81526020600482015260156024820152745465616d206d656d6265722069732061637469766560581b6044820152606401610761565b6126c133612e13565b61077c306040518060400160405280601381526020017272656d6f76655465616d28616464726573732960681b815250600084604051602001610c7a91906001600160a01b0391909116815260200190565b60008181526020818152604080832081516102208101835281546001600160a01b0381168252600160a01b90046001600160401b039081169482019490945260018201549384169281019290925283926060830190600160401b900460ff1660028111156127835761278361551f565b60028111156127945761279461551f565b8152600182015460ff600160481b820481161515602080850191909152600160501b830482161515604080860191909152600160581b8404831615156060860152600160601b9093049091161515608084015260028401805483518184028101840190945280845260a090940193909183018282801561283d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161281f575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561289f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612881575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561290157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116128e3575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561298657602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116129485790505b50505050508152602001600682018054806020026020016040519081016040528092919081815260200182805480156129e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116129ca575b5050505050815260200160078201805480602002602001604051908101604052809291908181526020018280548015612a4057602002820191906000526020600020905b815481526020019060010190808311612a2c575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015612b1a578382906000526020600020018054612a8d90615cd2565b80601f0160208091040260200160405190810160405280929190818152602001828054612ab990615cd2565b8015612b065780601f10612adb57610100808354040283529160200191612b06565b820191906000526020600020905b815481529060010190602001808311612ae957829003601f168201915b505050505081526020019060010190612a6e565b50505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b82821015612bf3578382906000526020600020018054612b6690615cd2565b80601f0160208091040260200160405190810160405280929190818152602001828054612b9290615cd2565b8015612bdf5780601f10612bb457610100808354040283529160200191612bdf565b820191906000526020600020905b815481529060010190602001808311612bc257829003601f168201915b505050505081526020019060010190612b47565b505050508152602001600a82018054612c0b90615cd2565b80601f0160208091040260200160405190810160405280929190818152602001828054612c3790615cd2565b8015612c845780601f10612c5957610100808354040283529160200191612c84565b820191906000526020600020905b815481529060010190602001808311612c6757829003601f168201915b5050505050815250509050600081604001516001600160401b031611612cbc5760405162461bcd60e51b815260040161076190615b2b565b8060a0015115612cde5760405162461bcd60e51b815260040161076190615b62565b806080015115612cf15750600192915050565b60408101516001600160401b0316600082606001516002811115612d1757612d1761551f565b1415612d3157612d2a62093a8082615c1e565b9050612d88565b600182606001516002811115612d4957612d4961551f565b1415612d5c57612d2a6203f48082615c1e565b600282606001516002811115612d7457612d7461551f565b1415612d8857612d85607882615c1e565b90505b612d95622e248082615c1e565b4210612da5575060019392505050565b5060009392505050565b6001600160a01b03811660009081526004602052604081205460ff1680612dee57506001600160a01b03821660009081526005602052604090205460ff165b806107365750506001600160a01b031660009081526006602052604090205460ff1690565b6001600160a01b03166000908152600a60205260409020429055565b6000818152602081905260409020600101546001600160401b0316612e665760405162461bcd60e51b815260040161076190615b2b565b612e6f816134b5565b612eb35760405162461bcd60e51b8152602060048201526015602482015274115e1958dd5d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610761565b612ebc81614cfa565b600081815260208190526040808220600101805460ff60581b1916600160581b179055516024810183905281903090829060440160408051601f198184030181529181526020820180516001600160e01b031663b192500760e01b17905251612f259190615dec565b60006040518083038185875af1925050503d8060008114612f62576040519150601f19603f3d011682016040523d82523d6000602084013e612f67565b606091505b506000858152602081905260409020600101805460ff60601b19168315600160601b81029190911790915591935091508015612fa557506044815110155b15612feb5760048101905080806020019051810190612fc49190615e2d565b6000848152602081815260409091208251612fe993600a909201929190910190615092565b505b6040516001600160401b0342811682528416907ff758fc91e01b00ea6b4a6138756f7f28e021f9bf21db6dbf8c36c88eb737257a9060200160405180910390a2505050565b606061303c8383613153565b158061304757508251155b15613053575081610736565b6000600184516130639190615ee5565b6001600160401b0381111561307a5761307a6153b5565b6040519080825280602002602001820160405280156130a3578160200160208202803683370190505b5090506000805b855182101561314957846001600160a01b03168683815181106130cf576130cf615ca1565b60200260200101516001600160a01b031614613137578582815181106130f7576130f7615ca1565b602002602001015183828151811061311157613111615ca1565b6001600160a01b03909216602092830291909101909101528061313381615cb7565b9150505b8161314181615cb7565b9250506130aa565b5090949350505050565b6000805b8351811015612da557826001600160a01b031684828151811061317c5761317c615ca1565b60200260200101516001600160a01b0316141561319d576001915050610736565b806131a781615cb7565b915050613157565b6000818152602081905260409020600101546001600160401b03166131e65760405162461bcd60e51b815260040161076190615b2b565b6131ef81612713565b61323b5760405162461bcd60e51b815260206004820152601860248201527f43616e63656c6c6174696f6e206e6f7420616c6c6f77656400000000000000006044820152606401610761565b61324481614cfa565b6040516001600160401b0342811682528216907f740823f5b237fe3c86a5ff1cd7a2345263cab48eaddc595c9bbb35d86c6cc4219060200160405180910390a250565b6040805160018082528183019092526000916020808301908036833701905050905084816000815181106132bd576132bd615ca1565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60608152602001906001900390816132ed579050509050848160008151811061331857613318615ca1565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050848160008151811061335b5761335b615ca1565b6020908102919091010152604080516001808252818301909252600091816020015b606081526020019060019003908161337d57905050905084816000815181106133a8576133a8615ca1565b60200260200101819052506133bf84848484614415565b5050505050505050565b6133d281612daf565b156133ef5760405162461bcd60e51b815260040161076190615bd1565b6001600160a01b03811660009081526006602052604090205460ff1661077c5761341881612e13565b6001600160a01b0381166000818152600660209081526040808320805460ff191660019081179091556009805491820181559093527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af90920180546001600160a01b0319168417905590519182527f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391015b60405180910390a150565b60008181526020818152604080832081516102208101835281546001600160a01b0381168252600160a01b90046001600160401b039081169482019490945260018201549384169281019290925283926060830190600160401b900460ff1660028111156135255761352561551f565b60028111156135365761353661551f565b8152600182015460ff600160481b820481161515602080850191909152600160501b830482161515604080860191909152600160581b8404831615156060860152600160601b9093049091161515608084015260028401805483518184028101840190945280845260a09094019390918301828280156135df57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116135c1575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561364157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613623575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156136a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613685575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561372857602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116136ea5790505b505050505081526020016006820180548060200260200160405190810160405280929190818152602001828054801561378a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161376c575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156137e257602002820191906000526020600020905b8154815260200190600101908083116137ce575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b828210156138bc57838290600052602060002001805461382f90615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461385b90615cd2565b80156138a85780601f1061387d576101008083540402835291602001916138a8565b820191906000526020600020905b81548152906001019060200180831161388b57829003601f168201915b505050505081526020019060010190613810565b50505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b8282101561399557838290600052602060002001805461390890615cd2565b80601f016020809104026020016040519081016040528092919081815260200182805461393490615cd2565b80156139815780601f1061395657610100808354040283529160200191613981565b820191906000526020600020905b81548152906001019060200180831161396457829003601f168201915b5050505050815260200190600101906138e9565b505050508152602001600a820180546139ad90615cd2565b80601f01602080910402602001604051908101604052809291908181526020018280546139d990615cd2565b8015613a265780601f106139fb57610100808354040283529160200191613a26565b820191906000526020600020905b815481529060010190602001808311613a0957829003601f168201915b5050505050815250509050600081604001516001600160401b031611613a5e5760405162461bcd60e51b815260040161076190615b2b565b8060a0015115613a805760405162461bcd60e51b815260040161076190615b62565b806080015115613a935750600092915050565b60408101516001600160401b0316600082606001516002811115613ab957613ab961551f565b1415613ad357613acc62093a8082615c1e565b9050613b2a565b600182606001516002811115613aeb57613aeb61551f565b1415613afe57613acc6203f48082615c1e565b600282606001516002811115613b1657613b1661551f565b1415613b2a57613b27607882615c1e565b90505b613b37622e248082615c1e565b4210613b47575060009392505050565b610100820151516040830151613b5f90607890615efc565b6001600160401b03164210158015613b7957506007548110155b15613b8957506001949350505050565b81421015613b9c57506000949350505050565b61012083015151610140840151516001613bb7816002615c1e565b6009541115613bd257600954613bcf90600290615ee5565b90505b6003811115613bdf575060035b8442118015613c0f575060075460021015613c0857600754613c0390600190615ee5565b613c0b565b60025b8410155b15613c2257506001979650505050505050565b613c2f6201518086615c1e565b42118015613c3e575060018410155b8015613c4b575060018310155b8015613c575750808210155b15613c6a57506001979650505050505050565b613c776203f48086615c1e565b42118015613c86575060018410155b8015613c93575060018310155b8015613ca0575060018210155b15613cb357506001979650505050505050565b613cc06203f48086615c1e565b42118015613ccf575060018410155b8015613cdb5750808210155b15613cee57506001979650505050505050565b506001613cfc816002615c1e565b6009541115613d1757600954613d1490600290615ee5565b90505b6004811115613d24575060045b613d3162093a8086615c1e565b42118015613d40575060018310155b8015613d4c5750808210155b15613d5f57506001979650505050505050565b613d6c6224ea0086615c1e565b42118015613d885750600954613d8490600190615ee5565b8210155b15613d9b57506001979650505050505050565b506000979650505050505050565b600954600110613e0d5760405162461bcd60e51b815260206004820152602960248201527f4174206c65617374203120636f6d6d756e697479206d656d6265722073686f756044820152683632103932b6b0b4b760b91b6064820152608401610761565b6001600160a01b0381166000908152600a60205260409020544290613e369062093a8090615c1e565b10613e835760405162461bcd60e51b815260206004820152601a60248201527f436f6d6d756e697479206d656d626572206973206163746976650000000000006044820152606401610761565b6001600160a01b03811660009081526006602052604090205460ff161561077c576001600160a01b0381166000908152600660205260408120805460ff191690555b600954811015613fcb57816001600160a01b031660098281548110613eec57613eec615ca1565b6000918252602090912001546001600160a01b03161415613fb95760098054613f1790600190615ee5565b81548110613f2757613f27615ca1565b600091825260209091200154600980546001600160a01b039092169183908110613f5357613f53615ca1565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480613f9257613f92615f1e565b600082815260209020810160001990810180546001600160a01b0319169055019055613fcb565b80613fc381615cb7565b915050613ec5565b506040516001600160a01b03821681527fa285b77d62d36ec6881b2cbc019c53874eb061798176f3577f2beab0848d16c6906020016134aa565b61400e81612daf565b1561402b5760405162461bcd60e51b815260040161076190615bd1565b6001600160a01b03811660009081526005602052604090205460ff1661077c5761405481612e13565b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556008805491820181559093527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee390920180546001600160a01b0319168417905590519182527f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc91016134aa565b6140f381612daf565b156141105760405162461bcd60e51b815260040161076190615bd1565b6001600160a01b03811660009081526004602052604090205460ff1661077c5761413981612e13565b6001600160a01b0381166000818152600460209081526040808320805460ff191660019081179091556007805491820181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b0319168417905590519182527f62bdcff6770832ed27a318b408d43d6b8454fbca399faa678141178eb9298ddb91016134aa565b60075460011061422d5760405162461bcd60e51b815260206004820152602360248201527f4174206c65617374203120646576206d656d6265722073686f756c642072656d60448201526230b4b760e91b6064820152608401610761565b6001600160a01b0381166000908152600a602052604090205442906142569062093a8090615c1e565b106142935760405162461bcd60e51b815260206004820152600d60248201526c4465762069732061637469766560981b6044820152606401610761565b6001600160a01b03811660009081526004602052604090205460ff161561077c576001600160a01b0381166000908152600460205260408120805460ff191690555b6007548110156143db57816001600160a01b0316600782815481106142fc576142fc615ca1565b6000918252602090912001546001600160a01b031614156143c9576007805461432790600190615ee5565b8154811061433757614337615ca1565b600091825260209091200154600780546001600160a01b03909216918390811061436357614363615ca1565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060078054806143a2576143a2615f1e565b600082815260209020810160001990810180546001600160a01b03191690550190556143db565b806143d381615cb7565b9150506142d5565b506040516001600160a01b03821681527f1b906a842edba22ebbad00e740e8d7a219947d27d71d8940a0be3a2d16db62a4906020016134aa565b3360009081526004602052604090205460ff168061444257503360009081526005602052604090205460ff165b8061445c57503360009081526006602052604090205460ff165b6144785760405162461bcd60e51b815260040161076190615af4565b8251845114801561448a575081518351145b8015614497575080518251145b6144e35760405162461bcd60e51b815260206004820152601e60248201527f506172616d73206d757374206265207468652073616d65206c656e67746800006044820152606401610761565b600380546001600160401b03169060006144fc83615f34565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050614529615006565b6001600160401b0342166040828101919091526000606083018190523381526005602052205460ff161561455f57600160608201525b3360009081526004602052604090205460ff161561457f57600260608201525b6000816060015160028111156145975761459761551f565b141580156145a3575034155b806145b5575067016345785d8a000034145b6146015760405162461bcd60e51b815260206004820152601860248201527f5061792065786163742070726f706f73616c20707269636500000000000000006044820152606401610761565b84516001600160401b0381111561461a5761461a6153b5565b604051908082528060200260200182016040528015614643578160200160208202803683370190505b506101608201526101e0810182905233815261018081018590526101a081018390526101c0810184905260005b84518110156147d55784818151811061468b5761468b615ca1565b602002602001015151600014806146bd575060038582815181106146b1576146b1615ca1565b60200260200101515110155b6147185760405162461bcd60e51b815260206004820152602660248201527f70726f7669646520612076616c69642066756e6374696f6e207370656369666960448201526531b0ba34b7b760d11b6064820152608401610761565b84818151811061472a5761472a615ca1565b6020026020010151516000146147905784818151811061474c5761474c615ca1565b602002602001015180519060200120826101600151828151811061477257614772615ca1565b6001600160e01b0319909216602092830291909101909101526147c3565b600082610160015182815181106147a9576147a9615ca1565b6001600160e01b0319909216602092830291909101909101525b806147cd81615cb7565b915050614670565b50600180546001600160401b03908116602080850191825260035483166000908152908190526040908190208551815493518516600160a01b026001600160e01b03199094166001600160a01b039091161792909217825584015192810180549390921667ffffffffffffffff198416811783556060850151859492939092909168ffffffffffffffffff1990911617600160401b83600281111561487c5761487c61551f565b0217905550608082015160018201805460a085015160c086015160e08701511515600160601b0260ff60601b19911515600160581b029190911661ffff60581b19921515600160501b0260ff60501b19961515600160481b02969096166affff00000000000000000019909416939093179490941716179190911790556101008201518051614915916002840191602090910190614fa1565b506101208201518051614932916003840191602090910190614fa1565b50610140820151805161494f916004840191602090910190614fa1565b50610160820151805161496c916005840191602090910190615106565b506101808201518051614989916006840191602090910190614fa1565b506101a082015180516149a69160078401916020909101906151ad565b506101c082015180516149c39160088401916020909101906151e7565b506101e082015180516149e0916009840191602090910190615240565b5061020082015180516149fd91600a840191602090910190615092565b5050600380546001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600482040180546001600160401b039285166008026101000a8381021990911693831602929092179091559054606084015160405133945091909216917fe5869b823d5af0c789b3ea4208515c891cecdb6bec9eb6a6524fc5c9e2cfb5e591614a9d914291615f5b565b60405180910390a35050505050565b600854600110614b0a5760405162461bcd60e51b8152602060048201526024808201527f4174206c656173742031207465616d206d656d6265722073686f756c6420726560448201526336b0b4b760e11b6064820152608401610761565b6001600160a01b0381166000908152600a60205260409020544290614b3390629e340090615c1e565b10614b785760405162461bcd60e51b81526020600482015260156024820152745465616d206d656d6265722069732061637469766560581b6044820152606401610761565b6001600160a01b03811660009081526005602052604090205460ff161561077c576001600160a01b0381166000908152600560205260408120805460ff191690555b600854811015614cc057816001600160a01b031660088281548110614be157614be1615ca1565b6000918252602090912001546001600160a01b03161415614cae5760088054614c0c90600190615ee5565b81548110614c1c57614c1c615ca1565b600091825260209091200154600880546001600160a01b039092169183908110614c4857614c48615ca1565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506008805480614c8757614c87615f1e565b600082815260209020810160001990810180546001600160a01b0319169055019055614cc0565b80614cb881615cb7565b915050614bba565b506040516001600160a01b03821681527f26b6063d78aefcf96f02ff06bc9822b5a623278253add7fffa5fb453db399810906020016134aa565b600081815260208190526040902060010154600160501b900460ff1615614d335760405162461bcd60e51b815260040161076190615b62565b60008181526020819052604090206001908101805460ff60501b1916600160501b1790558054614d639190615ee5565b600082815260208190526040902054600160a01b90046001600160401b031614614ed35760008181526020819052604081205460018054600160a01b9092046001600160401b03169291829190614dbb908290615ee5565b81548110614dcb57614dcb615ca1565b6000918252602080832060048304015460039092166008026101000a9091046001600160401b0390811684529083019390935260409091019020805467ffffffffffffffff60a01b1916600160a01b939092169290920217905560018054614e34908290615ee5565b81548110614e4457614e44615ca1565b60009182526020808320600483040154848452908390526040909220546001805460039093166008026101000a9093046001600160401b039081169392600160a01b90920416908110614e9957614e99615ca1565b90600052602060002090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b031602179055505b600280546000838152602081905260408120805467ffffffffffffffff60a01b1916600160a01b6001600160401b0394851602179055825460018181018555939091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6004820401805460039092166008026101000a8084021990921692851691909102919091179055805480614f6d57614f6d615f1e565b60008281526020902060046000199092019182040180546001600160401b03600860038516026101000a0219169055905550565b828054828255906000526020600020908101928215614ff6579160200282015b82811115614ff657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614fc1565b50615002929150615299565b5090565b604080516102208101825260008082526020820181905291810182905290606082019081526020016000151581526020016000151581526020016000151581526020016000151581526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b82805461509e90615cd2565b90600052602060002090601f0160209004810192826150c05760008555614ff6565b82601f106150d957805160ff1916838001178555614ff6565b82800160010185558215614ff6579182015b82811115614ff65782518255916020019190600101906150eb565b82805482825590600052602060002090600701600890048101928215614ff65791602002820160005b8382111561517057835183826101000a81548163ffffffff021916908360e01c0217905550926020019260040160208160030104928301926001030261512f565b80156151a05782816101000a81549063ffffffff0219169055600401602081600301049283019260010302615170565b5050615002929150615299565b828054828255906000526020600020908101928215614ff65791602002820182811115614ff65782518255916020019190600101906150eb565b828054828255906000526020600020908101928215615234579160200282015b828111156152345782518051615224918491602090910190615092565b5091602001919060010190615207565b506150029291506152ae565b82805482825590600052602060002090810192821561528d579160200282015b8281111561528d578251805161527d918491602090910190615092565b5091602001919060010190615260565b506150029291506152cb565b5b80821115615002576000815560010161529a565b808211156150025760006152c282826152e8565b506001016152ae565b808211156150025760006152df82826152e8565b506001016152cb565b5080546152f490615cd2565b6000825580601f10615304575050565b601f01602090049060005260206000209081019061077c9190615299565b80356001600160a01b038116811461533957600080fd5b919050565b60006020828403121561535057600080fd5b61535982615322565b9392505050565b60006020828403121561537257600080fd5b5035919050565b60008060006060848603121561538e57600080fd5b61539784615322565b92506153a560208501615322565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156153f3576153f36153b5565b604052919050565b60006001600160401b03821115615414576154146153b5565b50601f01601f191660200190565b600082601f83011261543357600080fd5b8135615446615441826153fb565b6153cb565b81815284602083860101111561545b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561548e57600080fd5b61549785615322565b935060208501356001600160401b03808211156154b357600080fd5b6154bf88838901615422565b94506040870135935060608701359150808211156154dc57600080fd5b506154e987828801615422565b91505092959194509250565b6000806040838503121561550857600080fd5b61551183615322565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6003811061555357634e487b7160e01b600052602160045260246000fd5b9052565b600081518084526020808501945080840160005b838110156155905781516001600160a01b03168752958201959082019060010161556b565b509495945050505050565b600081518084526020808501945080840160005b838110156155905781516001600160e01b031916875295820195908201906001016155af565b600081518084526020808501945080840160005b83811015615590578151875295820195908201906001016155e9565b60005b83811015615620578181015183820152602001615608565b8381111561118f5750506000910152565b60008151808452615649816020860160208601615605565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156156a5578284038952615693848351615631565b9885019893509084019060010161567b565b5091979650505050505050565b602081526156cc6020820183516001600160a01b03169052565b600060208301516156e860408401826001600160401b03169052565b5060408301516001600160401b03811660608401525060608301516157106080840182615535565b50608083015180151560a08401525060a083015180151560c08401525060c083015180151560e08401525060e08301516101006157508185018315159052565b808501519150506102206101208181860152615770610240860184615557565b9250808601519050601f196101408187860301818801526157918584615557565b9450808801519250506101608187860301818801526157b08584615557565b9450808801519250506101808187860301818801526157cf858461559b565b9450808801519250506101a08187860301818801526157ee8584615557565b9450808801519250506101c081878603018188015261580d85846155d5565b9450808801519250506101e081878603018188015261582c858461565d565b94508088015192505061020081878603018188015261584b858461565d565b9088015187820390920184880152935090506158678382615631565b9695505050505050565b60006001600160401b0382111561588a5761588a6153b5565b5060051b60200190565b600082601f8301126158a557600080fd5b813560206158b561544183615871565b82815260059290921b840181019181810190868411156158d457600080fd5b8286015b848110156159135780356001600160401b038111156158f75760008081fd5b6159058986838b0101615422565b8452509183019183016158d8565b509695505050505050565b600082601f83011261592f57600080fd5b8135602061593f61544183615871565b82815260059290921b8401810191818101908684111561595e57600080fd5b8286015b848110156159135780358352918301918301615962565b600082601f83011261598a57600080fd5b8135602061599a61544183615871565b82815260059290921b840181019181810190868411156159b957600080fd5b8286015b848110156159135780356001600160401b038111156159dc5760008081fd5b6159ea8986838b0101615422565b8452509183019183016159bd565b60008060008060808587031215615a0e57600080fd5b84356001600160401b0380821115615a2557600080fd5b818701915087601f830112615a3957600080fd5b81356020615a4961544183615871565b82815260059290921b8401810191818101908b841115615a6857600080fd5b948201945b83861015615a8d57615a7e86615322565b82529482019490820190615a6d565b98505088013592505080821115615aa357600080fd5b615aaf88838901615894565b94506040870135915080821115615ac557600080fd5b615ad18883890161591e565b93506060870135915080821115615ae757600080fd5b506154e987828801615979565b60208082526018908201527f4f6e6c79206d656d626572732063616e20646f20746869730000000000000000604082015260600190565b60208082526017908201527f50726f706f73616c20646f6573206e6f74206578697374000000000000000000604082015260600190565b60208082526010908201526f416c726561647920696e61637469766560801b604082015260600190565b60208082526025908201527f446964206e6f7420766f746520666f72206f7220616c7265616479206469736d6040820152641a5cdcd95960da1b606082015260800190565b6020808252601f908201527f54686973206164647265737320616c726561647920686173206120726f6c6500604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115615c3157615c31615c08565b500190565b60208082526021908201527f446f6e27742063616c6c20746865206d756c7469736967206c696b65207468616040820152601d60fa1b606082015260800190565b60208082526010908201526f4f6e6c792073656c6620706c6561736560801b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415615ccb57615ccb615c08565b5060010190565b600181811c90821680615ce657607f821691505b60208210811415615d0757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f105b1c9958591e48185c1c1c9bdd995960821b604082015260600190565b6001600160e01b03198316815281546000906004908290600181811c9080831680615d6357607f831692505b6020808410821415615d8257634e487b7160e01b865260228752602486fd5b818015615d965760018114615dab57615ddc565b60ff1986168a890152848a0188019650615ddc565b60008b81526020902060005b86811015615dd25781548c82018b0152908501908301615db7565b505087858b010196505b50949a9950505050505050505050565b60008251615dfe818460208701615605565b9190910192915050565b60008251615e1a818460208701615605565b601f60fa1b920191825250600101919050565b600060208284031215615e3f57600080fd5b81516001600160401b03811115615e5557600080fd5b8201601f81018413615e6657600080fd5b8051615e74615441826153fb565b818152856020838501011115615e8957600080fd5b615e9a826020830160208601615605565b95945050505050565b60008351615eb5818460208801615605565b835190830190615ec9818360208801615605565b01949350505050565b6020815260006153596020830184615631565b600082821015615ef757615ef7615c08565b500390565b60006001600160401b03808316818516808303821115615ec957615ec9615c08565b634e487b7160e01b600052603160045260246000fd5b60006001600160401b0380831681811415615f5157615f51615c08565b6001019392505050565b6001600160401b038316815260408101615359602083018461553556fea2646970667358221220cdaacc3afdaefede45bf0389efe55b351c4477129efd61ab1702878c6771a9cd64736f6c6343000809003354686973206164647265737320616c726561647920686173206120726f6c6500000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000e91b646715c175fc1cff73bbfd19b14848cc913b0000000000000000000000002d7b286b95227f174b24f0c37e5d833236f10dfb0000000000000000000000009256faa05b5bd28a99eef6d48e4a6e32cd1c90fc00000000000000000000000000000000000000000000000000000000000000010000000000000000000000002fbd32a700abfff373e63ccb66ce961700f9140800000000000000000000000000000000000000000000000000000000000000090000000000000000000000001279fe5271b76f6c305b55f59444c8028af9ac510000000000000000000000004cfe6e9cf531d6b07bc95a1d344c3f7257c98d6c00000000000000000000000001f1d1fa0ea7e53f484fc84ca8b7ada2aed9e6df000000000000000000000000911da057b7f735bc54e9ffbe1143dda363dba6fb000000000000000000000000358eae3d08c2bf6cec9259dd800f4e1cb97ed4f300000000000000000000000069ebbf3794e76fc1ffc7021d0b2ee5313bad2aaf0000000000000000000000005b21e0ae319fcffaa2f7041e7e5cf62c6738abde000000000000000000000000e547446348df88a45ddf14c8ea7474c7148502810000000000000000000000008692240d0f529e5c4a278ad14d72c76b5a856710

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000e91b646715c175fc1cff73bbfd19b14848cc913b0000000000000000000000002d7b286b95227f174b24f0c37e5d833236f10dfb0000000000000000000000009256faa05b5bd28a99eef6d48e4a6e32cd1c90fc00000000000000000000000000000000000000000000000000000000000000010000000000000000000000002fbd32a700abfff373e63ccb66ce961700f9140800000000000000000000000000000000000000000000000000000000000000090000000000000000000000001279fe5271b76f6c305b55f59444c8028af9ac510000000000000000000000004cfe6e9cf531d6b07bc95a1d344c3f7257c98d6c00000000000000000000000001f1d1fa0ea7e53f484fc84ca8b7ada2aed9e6df000000000000000000000000911da057b7f735bc54e9ffbe1143dda363dba6fb000000000000000000000000358eae3d08c2bf6cec9259dd800f4e1cb97ed4f300000000000000000000000069ebbf3794e76fc1ffc7021d0b2ee5313bad2aaf0000000000000000000000005b21e0ae319fcffaa2f7041e7e5cf62c6738abde000000000000000000000000e547446348df88a45ddf14c8ea7474c7148502810000000000000000000000008692240d0f529e5c4a278ad14d72c76b5a856710

-----Decoded View---------------
Arg [0] : _devs (address[]): 0xe91b646715c175fc1cff73bbfd19b14848cc913b,0x2d7b286b95227f174b24f0c37e5d833236f10dfb,0x9256faa05b5bd28a99eef6d48e4a6e32cd1c90fc
Arg [1] : _team (address[]): 0x2fbd32a700abfff373e63ccb66ce961700f91408
Arg [2] : _community (address[]): 0x1279fe5271b76f6c305b55f59444c8028af9ac51,0x4cfe6e9cf531d6b07bc95a1d344c3f7257c98d6c,0x01f1d1fa0ea7e53f484fc84ca8b7ada2aed9e6df,0x911da057b7f735bc54e9ffbe1143dda363dba6fb,0x358eae3d08c2bf6cec9259dd800f4e1cb97ed4f3,0x69ebbf3794e76fc1ffc7021d0b2ee5313bad2aaf,0x5b21e0ae319fcffaa2f7041e7e5cf62c6738abde,0xe547446348df88a45ddf14c8ea7474c714850281,0x8692240d0f529e5c4a278ad14d72c76b5a856710

-----Encoded View---------------
19 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 000000000000000000000000e91b646715c175fc1cff73bbfd19b14848cc913b
Arg [5] : 0000000000000000000000002d7b286b95227f174b24f0c37e5d833236f10dfb
Arg [6] : 0000000000000000000000009256faa05b5bd28a99eef6d48e4a6e32cd1c90fc
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [8] : 0000000000000000000000002fbd32a700abfff373e63ccb66ce961700f91408
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [10] : 0000000000000000000000001279fe5271b76f6c305b55f59444c8028af9ac51
Arg [11] : 0000000000000000000000004cfe6e9cf531d6b07bc95a1d344c3f7257c98d6c
Arg [12] : 00000000000000000000000001f1d1fa0ea7e53f484fc84ca8b7ada2aed9e6df
Arg [13] : 000000000000000000000000911da057b7f735bc54e9ffbe1143dda363dba6fb
Arg [14] : 000000000000000000000000358eae3d08c2bf6cec9259dd800f4e1cb97ed4f3
Arg [15] : 00000000000000000000000069ebbf3794e76fc1ffc7021d0b2ee5313bad2aaf
Arg [16] : 0000000000000000000000005b21e0ae319fcffaa2f7041e7e5cf62c6738abde
Arg [17] : 000000000000000000000000e547446348df88a45ddf14c8ea7474c714850281
Arg [18] : 0000000000000000000000008692240d0f529e5c4a278ad14d72c76b5a856710


Deployed ByteCode Sourcemap

14290:21321:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23578:90;;;;;;;;;;-1:-1:-1;23578:90:0;;;;;:::i;:::-;-1:-1:-1;;;;;23652:8:0;23628:4;23652:8;;;:4;:8;;;;;;;;;23578:90;;;;644:14:1;;637:22;619:41;;607:2;592:18;23578:90:0;;;;;;;;25055:116;;;;;;;;;;-1:-1:-1;25055:116:0;;;;;:::i;:::-;;:::i;21634:120::-;;;;;;;;;;-1:-1:-1;21634:120:0;;;;;:::i;:::-;;:::i;14616:25::-;;;;;;;;;;-1:-1:-1;14616:25:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1129:32:1;;;1111:51;;1099:2;1084:18;14616:25:0;965:203:1;20551:1073:0;;;;;;;;;;-1:-1:-1;20551:1073:0;;;;;:::i;:::-;;:::i;23467:103::-;;;;;;;;;;-1:-1:-1;23467:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;23550:12:0;23523:7;23550:12;;;:8;:12;;;;;;;23467:103;;;;1319:25:1;;;1307:2;1292:18;23467:103:0;1173:177:1;23676:91:0;;;;;;;;;;-1:-1:-1;23676:91:0;;;;;:::i;:::-;-1:-1:-1;;;;;23751:8:0;23727:4;23751:8;;;:4;:8;;;;;;;;;23676:91;16070:255;;;;;;:::i;:::-;;:::i;17568:379::-;;;;;;:::i;:::-;;:::i;16598:267::-;;;;;;:::i;:::-;;:::i;18236:329::-;;;;;;:::i;:::-;;:::i;24808:118::-;;;;;;;;;;-1:-1:-1;24894:17:0;:24;24808:118;;16001:61;;;;;;;;;;;;;:::i;24559:114::-;;;;;;;;;;-1:-1:-1;24643:15:0;:22;24559:114;;22224:159;;;;;;;;;;-1:-1:-1;22224:159:0;;;;;:::i;:::-;;:::i;24681:121::-;;;;;;;;;;-1:-1:-1;24681:121:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1957:31:1;;;1939:50;;1927:2;1912:18;24681:121:0;1795:200:1;16333:257:0;;;;;;:::i;:::-;;:::i;18573:445::-;;;;;;:::i;:::-;;:::i;24934:113::-;;;;;;;;;;-1:-1:-1;24934:113:0;;;;;:::i;:::-;;:::i;22569:94::-;;;;;;;;;;-1:-1:-1;22569:94:0;;;;;:::i;:::-;;:::i;19607:936::-;;;;;;;;;;-1:-1:-1;19607:936:0;;;;;:::i;:::-;;:::i;23987:97::-;;;;;;;;;;-1:-1:-1;24061:8:0;:15;23987:97;;23775:101;;;;;;;;;;-1:-1:-1;23775:101:0;;;;;:::i;:::-;-1:-1:-1;;;;;23855:13:0;23831:4;23855:13;;;:9;:13;;;;;;;;;23775:101;17955:273;;;;;;:::i;:::-;;:::i;14648:30::-;;;;;;;;;;-1:-1:-1;14648:30:0;;;;;:::i;:::-;;:::i;22671:763::-;;;;;;;;;;-1:-1:-1;22671:763:0;;;;;:::i;:::-;;:::i;23884:95::-;;;;;;;;;;-1:-1:-1;23957:7:0;:14;23884:95;;22069:149;;;;;;;;;;-1:-1:-1;22069:149:0;;;;;:::i;:::-;;:::i;21916:147::-;;;;;;;;;;-1:-1:-1;21916:147:0;;;;;:::i;:::-;;:::i;24329:99::-;;;;;;;;;;-1:-1:-1;24407:13:0;;-1:-1:-1;;;;;24407:13:0;24329:99;;24092:107;;;;;;;;;;-1:-1:-1;24171:13:0;:20;24092:107;;22391:82;;;;;;;;;;-1:-1:-1;22391:82:0;;;;;:::i;:::-;;:::i;24207:114::-;;;;;;;;;;-1:-1:-1;24207:114:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14585:24::-;;;;;;;;;;-1:-1:-1;14585:24:0;;;;;:::i;:::-;;:::i;24436:117::-;;;;;;;;;;-1:-1:-1;24436:117:0;;;;;:::i;:::-;;:::i;16873:330::-;;;;;;:::i;:::-;;:::i;21762:118::-;;;;;;;;;;-1:-1:-1;21762:118:0;;;;;:::i;:::-;;:::i;19026:573::-;;;;;;:::i;:::-;;:::i;22479:84::-;;;;;;;;;;-1:-1:-1;22479:84:0;;;;;:::i;:::-;;:::i;17211:349::-;;;;;;:::i;:::-;;:::i;25055:116::-;25114:4;25138:25;25159:3;25138:20;:25::i;:::-;25131:32;25055:116;-1:-1:-1;;25055:116:0:o;21634:120::-;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;;;;;;;;;21705:17:::1;21711:10;21705:5;:17::i;:::-;21733:13;21742:3;21733:8;:13::i;:::-;21634:120:::0;:::o;14616:25::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14616:25:0;;-1:-1:-1;14616:25:0;:::o;20551:1073::-;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;20630:9:::1;:14:::0;;;::::1;::::0;;;;;;:27:::1;;::::0;-1:-1:-1;;;;;20630:27:0::1;20622:68;;;;-1:-1:-1::0;;;20622:68:0::1;;;;;;;:::i;:::-;20710:9;:14:::0;;;::::1;::::0;;;;;;:23:::1;;::::0;-1:-1:-1;;;20710:23:0;::::1;;;20709:24;20701:53;;;;-1:-1:-1::0;;;20701:53:0::1;;;;;;;:::i;:::-;20765:17;20771:10;20765:5;:17::i;:::-;20802:10;20797:16;::::0;;;:4:::1;:16;::::0;;;;;::::1;;20793:693;;;20877:9;:14:::0;;;::::1;::::0;;;;;;;;:22:::1;;20855:57:::0;;;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;::::1;20877:22:::0;20855:57;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;20855:57:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;20901:10;20855:21;:57::i;:::-;20830:9;:14:::0;;;::::1;::::0;;;;;;;:82;;::::1;::::0;:22:::1;::::0;;::::1;::::0;:82;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;20927:9:0::1;:14:::0;;;::::1;::::0;;;;;;20952:4:::1;20927:22;:29:::0;;-1:-1:-1;;20927:29:0::1;-1:-1:-1::0;;;20927:29:0::1;::::0;;20793:693:::1;;;20983:10;20978:16;::::0;;;:4:::1;:16;::::0;;;;;::::1;;20974:512;;;21031:9;:14:::0;;;::::1;::::0;;;;;;;;:22:::1;;21019:47:::0;;;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;::::1;21031:22:::0;21019:47;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;21019:47:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;21055:10;21019:11;:47::i;:::-;21011:97;;;;-1:-1:-1::0;;;21011:97:0::1;;;;;;;:::i;:::-;21170:9;:14:::0;;;::::1;::::0;;;;;;;;:22:::1;;21148:57:::0;;;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;::::1;21170:22:::0;21148:57;;::::1;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;21148:57:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;21194:10;21148:21;:57::i;:::-;21123:9;:14:::0;;;::::1;::::0;;;;;;;:82;;::::1;::::0;:22:::1;::::0;;::::1;::::0;:82;;;::::1;::::0;::::1;:::i;:::-;;20974:512;;;21237:10;21227:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;21223:263;;;21285:9;:14:::0;;;::::1;::::0;;;;;;;;:27:::1;;21273:52:::0;;;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;::::1;21285:27:::0;21273:52;;::::1;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;21273:52:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;21314:10;21273:11;:52::i;:::-;21265:102;;;;-1:-1:-1::0;;;21265:102:0::1;;;;;;;:::i;:::-;21434:9;:14:::0;;;::::1;::::0;;;;;;;;:27:::1;;21412:62:::0;;;;;;::::1;::::0;;;;;;;;;;::::1;::::0;;;::::1;21434:27:::0;21412:62;;::::1;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;21412:62:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;21463:10;21412:21;:62::i;:::-;21382:9;:14:::0;;;::::1;::::0;;;;;;;:92;;::::1;::::0;:27:::1;::::0;;::::1;::::0;:92;;;::::1;::::0;::::1;:::i;:::-;;21223:263;21532:3;21501:35;21515:15;21501:35;;;;1319:25:1::0;;1307:2;1292:18;;1173:177;21501:35:0::1;;;;;;;;21551:25;21572:3;21551:20;:25::i;:::-;21547:70;;;21593:12;21601:3;21593:7;:12::i;16070:255::-:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;16162:15:::1;16174:2;16162:11;:15::i;:::-;16161:16;16153:60;;;;-1:-1:-1::0;;;16153:60:0::1;;;;;;;:::i;:::-;16224:17;16230:10;16224:5;:17::i;:::-;16252:65;16273:4;16252:65;;;;;;;;;;;;;-1:-1:-1::0;;;16252:65:0::1;;::::0;16299:1:::1;16313:2;16302:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;16302:14:0::1;;;;;;;;;;;;;16252:12;:65::i;17568:379::-:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17671:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;::::1;;17663:54;;;::::0;-1:-1:-1;;;17663:54:0;;16258:2:1;17663:54:0::1;::::0;::::1;16240:21:1::0;16297:2;16277:18;;;16270:30;16336;16316:18;;;16309:58;16384:18;;17663:54:0::1;16056:352:1::0;17663:54:0::1;-1:-1:-1::0;;;;;17736:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;17780:15:::1;::::0;17736:41:::1;::::0;15234:6:::1;::::0;17736:41:::1;:::i;:::-;:59;17728:98;;;::::0;-1:-1:-1;;;17728:98:0;;16880:2:1;17728:98:0::1;::::0;::::1;16862:21:1::0;16919:2;16899:18;;;16892:30;16958:28;16938:18;;;16931:56;17004:18;;17728:98:0::1;16678:350:1::0;17728:98:0::1;17837:17;17843:10;17837:5;:17::i;:::-;17865:74;17886:4;17865:74;;;;;;;;;;;;;;;;::::0;17921:1:::1;17935:2;17924:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;16598:267:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;16696:15:::1;16708:2;16696:11;:15::i;:::-;16695:16;16687:60;;;;-1:-1:-1::0;;;16687:60:0::1;;;;;;;:::i;:::-;16758:17;16764:10;16758:5;:17::i;:::-;16786:71;16807:4;16786:71;;;;;;;;;;;;;-1:-1:-1::0;;;16786:71:0::1;;::::0;16839:1:::1;16853:2;16842:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;18236:329:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18372:23:0;::::1;18390:4;18372:23;;18364:69;;;;-1:-1:-1::0;;;18364:69:0::1;;;;;;;:::i;:::-;18444:17;18450:10;18444:5;:17::i;:::-;18472:85;18485:6;18472:85;;;;;;;;;;;;;;;;::::0;18522:1:::1;18536:10;18548:7;18525:31;;;;;;;;-1:-1:-1::0;;;;;17627:32:1;;;;17609:51;;17691:2;17676:18;;17669:34;17597:2;17582:18;;17435:274;18472:85:0::1;18236:329:::0;;;:::o;16001:61::-;16037:17;16043:10;16037:5;:17::i;:::-;16001:61::o;22224:159::-;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22296:15:::1;22308:2;22296:11;:15::i;:::-;22295:16;22287:60;;;;-1:-1:-1::0;;;22287:60:0::1;;;;;;;:::i;:::-;22358:17;22372:2;22358:13;:17::i;24681:121::-:0;24746:6;24772:17;24790:3;24772:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24772:22:0;24765:29;;24681:121;;;:::o;16333:257::-;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;16426:15:::1;16438:2;16426:11;:15::i;:::-;16425:16;16417:60;;;;-1:-1:-1::0;;;16417:60:0::1;;;;;;;:::i;:::-;16488:17;16494:10;16488:5;:17::i;:::-;16516:66;16537:4;16516:66;;;;;;;;;;;;;-1:-1:-1::0;;;16516:66:0::1;;::::0;16564:1:::1;16578:2;16567:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;18573:445:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18723:24:0;::::1;18742:4;18723:24;;18715:70;;;;-1:-1:-1::0;;;18715:70:0::1;;;;;;;:::i;:::-;18801:9;18796:134;18826:4;18820:18;18816:1;:22;18796:134;;;18874:4;18880:1;18868:14;;;;;;;;:::i;:::-;;::::0;;;;-1:-1:-1;;;;;;18868:14:0;-1:-1:-1;;;18868:22:0::1;;18860:58;;;::::0;-1:-1:-1;;;18860:58:0;;18393:2:1;18860:58:0::1;::::0;::::1;18375:21:1::0;18432:2;18412:18;;;18405:30;-1:-1:-1;;;18451:18:1;;;18444:53;18514:18;;18860:58:0::1;18191:347:1::0;18860:58:0::1;18840:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18796:134;;;;18940:17;18946:10;18940:5;:17::i;:::-;18968:42;18981:7;18990:4;18996:6;19004:5;18968:12;:42::i;:::-;18573:445:::0;;;;:::o;24934:113::-;24993:4;25017:22;25035:3;25017:17;:22::i;22569:94::-;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22635:20:::1;22652:2;22635:16;:20::i;19607:936::-:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;19678:19:::1;19700:14:::0;;;::::1;::::0;;;;;;;19678:36;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;19678:36:0;::::1;::::0;;-1:-1:-1;;;19678:36:0;::::1;-1:-1:-1::0;;;;;19678:36:0;;::::1;::::0;;::::1;::::0;;;;;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;-1:-1:-1;;;19678:36:0;::::1;;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;19678:36:0;::::1;::::0;::::1;;;;::::0;;::::1;::::0;;;;-1:-1:-1;;;19678:36:0;::::1;::::0;::::1;;;::::0;;;;;;;;-1:-1:-1;;;19678:36:0;::::1;::::0;::::1;;;::::0;;;;-1:-1:-1;;;19678:36:0;;::::1;::::0;;::::1;;;::::0;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;19678:36:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;19678:36:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;19678:36:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19678:36:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;19678:36:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;19733:3;:16;;;-1:-1:-1::0;;;;;19733:21:0::1;19753:1;19733:21;;19725:57;;;;-1:-1:-1::0;;;19725:57:0::1;;;;;;;:::i;:::-;19802:3;:12;;;19801:13;19793:42;;;;-1:-1:-1::0;;;19793:42:0::1;;;;;;;:::i;:::-;19846:17;19852:10;19846:5;:17::i;:::-;19883:10;19878:16;::::0;;;:4:::1;:16;::::0;;;;;::::1;;19874:534;;;19920:36;19932:3;:11;;;19945:10;19920:11;:36::i;:::-;19919:37;19911:66;;;;-1:-1:-1::0;;;19911:66:0::1;;;;;;;:::i;:::-;19992:9;:14:::0;;;::::1;::::0;;;;;;:22:::1;;:39:::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;19992:39:0::1;20020:10;19992:39;::::0;;19874:534:::1;;;20058:10;20053:16;::::0;;;:4:::1;:16;::::0;;;;;::::1;;20049:359;;;20095:36;20107:3;:11;;;20120:10;20095:11;:36::i;:::-;20094:37;20086:66;;;;-1:-1:-1::0;;;20086:66:0::1;;;;;;;:::i;:::-;20167:9;:14:::0;;;::::1;::::0;;;;;;:22:::1;;:39:::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;20167:39:0::1;20195:10;20167:39;::::0;;20049:359:::1;;;20238:10;20228:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;20224:184;;;20275:41;20287:3;:16;;;20305:10;20275:11;:41::i;:::-;20274:42;20266:71;;;;-1:-1:-1::0;;;20266:71:0::1;;;;;;;:::i;:::-;20352:9;:14:::0;;;::::1;::::0;;;;;;:27:::1;;:44:::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;20352:44:0::1;20385:10;20352:44;::::0;;20224:184:::1;20453:3;20423:34;20436:15;20423:34;;;;1319:25:1::0;;1307:2;1292:18;;1173:177;20423:34:0::1;;;;;;;;20472:22;20490:3;20472:17;:22::i;:::-;20468:68;;;20511:13;20520:3;20511:8;:13::i;:::-;19667:876;19607:936:::0;:::o;17955:273::-;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18069:27:0;::::1;18091:4;18069:27;;18061:73;;;;-1:-1:-1::0;;;18061:73:0::1;;;;;;;:::i;:::-;18145:17;18151:10;18145:5;:17::i;:::-;18173:47;18186:10;18173:47;;;;;;;;;;;::::0;18202:6:::1;18210:9;;;;;;;;;;;::::0;18173:12:::1;:47::i;14648:30::-:0;;;;;;;;;;;;22671:763;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22738:20:::1;22774:9;22769:658;22793:9;:14:::0;;;::::1;::::0;;;;;;:21:::1;;:28:::0;22789:32;::::1;22769:658;;;22843:12;22881:14:::0;;;::::1;::::0;;;;;;:21:::1;;:24:::0;;22843:12;;22881:21;22903:1;;22881:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;22918:14;;;;;;;;;;;:20:::1;;:23:::0;;-1:-1:-1;;;;;22881:24:0;;::::1;::::0;22939:1;;22918:23;::::1;;;;;:::i;:::-;;;;;;;;;22960:9;:14:::0;22970:3:::1;22960:14;;;;;;;;;;;:24;;22985:1;22960:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;22989:9;:14:::0;22999:3:::1;22989:14;;;;;;;;;;;:19;;23009:1;22989:22;;;;;;;;:::i;:::-;;;;;;;;22943:69;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22943:69:0;;::::1;::::0;;;;;;;22881:132:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22842:171;;;;23061:6;23044:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;23028:45;;23093:7;23092:8;:32;;;;;23122:2;23104:7;:14;:20;;23092:32;23088:285;;;23244:4;23235:7;23231:18;23220:29;;23319:6;23337:7;23326:29;;;;;;;;;;;;:::i;:::-;23302:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23286:71;;23088:285;23392:7;23387:28;;23408:6;23401:14;;-1:-1:-1::0;;;23401:14:0::1;;;;;;;;:::i;23387:28::-;22827:600;;22823:3;;;;;:::i;:::-;;;;22769:658;;22069:149:::0;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22136:15:::1;22148:2;22136:11;:15::i;:::-;22135:16;22127:60;;;;-1:-1:-1::0;;;22127:60:0::1;;;;;;;:::i;:::-;22198:12;22207:2;22198:8;:12::i;21916:147::-:0;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;21982:15:::1;21994:2;21982:11;:15::i;:::-;21981:16;21973:60;;;;-1:-1:-1::0;;;21973:60:0::1;;;;;;;:::i;:::-;22044:11;22052:2;22044:7;:11::i;22391:82::-:0;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22451:14:::1;22462:2;22451:10;:14::i;24207:114::-:0;24264:15;;:::i;:::-;24299:9;:14;;;;;;;;;;;;24292:21;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;-1:-1:-1;;;24292:21:0;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;24299:14;24292:21;;;;-1:-1:-1;;;24292:21:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;24292:21:0;;;;;;;;;;;;;;-1:-1:-1;;;24292:21:0;;;;;;;;;;;;;;-1:-1:-1;;;24292:21:0;;;;;;;;;;-1:-1:-1;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24292:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24207:114;;;:::o;14585:24::-;;;;;;;;;;;;24436:117;24499:6;24525:15;24541:3;24525:20;;;;;;;;:::i;16873:330::-;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16970:8:0;::::1;;::::0;;;:4:::1;:8;::::0;;;;;::::1;;16962:36;;;::::0;-1:-1:-1;;;16962:36:0;;23043:2:1;16962:36:0::1;::::0;::::1;23025:21:1::0;23082:2;23062:18;;;23055:30;-1:-1:-1;;;23101:18:1;;;23094:45;23156:18;;16962:36:0::1;22841:339:1::0;16962:36:0::1;-1:-1:-1::0;;;;;17017:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;17055:15:::1;::::0;17017:35:::1;::::0;15119:8:::1;::::0;17017:35:::1;:::i;:::-;:53;17009:79;;;::::0;-1:-1:-1;;;17009:79:0;;23387:2:1;17009:79:0::1;::::0;::::1;23369:21:1::0;23426:2;23406:18;;;23399:30;-1:-1:-1;;;23445:18:1;;;23438:43;23498:18;;17009:79:0::1;23185:337:1::0;17009:79:0::1;17099:17;17105:10;17099:5;:17::i;:::-;17127:68;17148:4;17127:68;;;;;;;;;;;;;-1:-1:-1::0;;;17127:68:0::1;;::::0;17177:1:::1;17191:2;17180:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;21762:118:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;21832:17:::1;21838:10;21832:5;:17::i;:::-;21860:12;21868:3;21860:7;:12::i;19026:573::-:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;19202:9:::1;19197:307;19221:7;:14;19217:1;:18;19197:307;;;19287:4;-1:-1:-1::0;;;;;19265:27:0::1;:7;19273:1;19265:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;19265:27:0::1;;;19257:73;;;;-1:-1:-1::0;;;19257:73:0::1;;;;;;;:::i;:::-;19350:9;19345:148;19375:4;19380:1;19375:7;;;;;;;;:::i;:::-;;;;;;;19369:21;19365:1;:25;19345:148;;;19430:4;19435:1;19430:7;;;;;;;;:::i;:::-;;;;;;;19439:1;19424:17;;;;;;;;:::i;:::-;;::::0;;;;-1:-1:-1;;;;;;19424:17:0;-1:-1:-1;;;19424:25:0::1;;19416:61;;;::::0;-1:-1:-1;;;19416:61:0;;18393:2:1;19416:61:0::1;::::0;::::1;18375:21:1::0;18432:2;18412:18;;;18405:30;-1:-1:-1;;;18451:18:1;;;18444:53;18514:18;;19416:61:0::1;18191:347:1::0;19416:61:0::1;19392:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19345:148;;;-1:-1:-1::0;19237:3:0;::::1;::::0;::::1;:::i;:::-;;;;19197:307;;;;19514:17;19520:10;19514:5;:17::i;:::-;19542:49;19562:7;19571:4;19577:6;19585:5;19542:19;:49::i;22479:84::-:0;15512:10;15534:4;15512:27;15504:56;;;;-1:-1:-1;;;15504:56:0;;;;;;;:::i;:::-;22540:15:::1;22552:2;22540:11;:15::i;17211:349::-:0;15393:23;15405:10;15393:11;:23::i;:::-;15385:60;;;;-1:-1:-1;;;15385:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17309:8:0;::::1;;::::0;;;:4:::1;:8;::::0;;;;;::::1;;17301:44;;;::::0;-1:-1:-1;;;17301:44:0;;23729:2:1;17301:44:0::1;::::0;::::1;23711:21:1::0;23768:2;23748:18;;;23741:30;23807:25;23787:18;;;23780:53;23850:18;;17301:44:0::1;23527:347:1::0;17301:44:0::1;-1:-1:-1::0;;;;;17364:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;17403:15:::1;::::0;17364:36:::1;::::0;15174:8:::1;::::0;17364:36:::1;:::i;:::-;:54;17356:88;;;::::0;-1:-1:-1;;;17356:88:0;;24081:2:1;17356:88:0::1;::::0;::::1;24063:21:1::0;24120:2;24100:18;;;24093:30;-1:-1:-1;;;24139:18:1;;;24132:51;24200:18;;17356:88:0::1;23879:345:1::0;17356:88:0::1;17455:17;17461:10;17455:5;:17::i;:::-;17483:69;17504:4;17483:69;;;;;;;;;;;;;-1:-1:-1::0;;;17483:69:0::1;;::::0;17534:1:::1;17548:2;17537:14;;;;;;;-1:-1:-1::0;;;;;1129:32:1;;;;1111:51;;1099:2;1084:18;;965:203;33882:767:0;33948:4;33987:14;;;;;;;;;;;33965:36;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;-1:-1:-1;;;33965:36:0;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;33948:4;;33965:36;;;;-1:-1:-1;;;33965:36:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;33965:36:0;;;;;;;;;;;;;;-1:-1:-1;;;33965:36:0;;;;;;;;;;;;;;-1:-1:-1;;;33965:36:0;;;;;;;;;;-1:-1:-1;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33965:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34039:1;34020:3;:16;;;-1:-1:-1;;;;;34020:20:0;;34012:56;;;;-1:-1:-1;;;34012:56:0;;;;;;;:::i;:::-;34088:3;:12;;;34087:13;34079:42;;;;-1:-1:-1;;;34079:42:0;;;;;;;:::i;:::-;34136:3;:11;;;34132:28;;;-1:-1:-1;34156:4:0;;33882:767;-1:-1:-1;;33882:767:0:o;34132:28::-;34191:16;;;;-1:-1:-1;;;;;34171:36:0;:17;34222:3;:16;;;:42;;;;;;;;:::i;:::-;;34218:326;;;34281:37;14836:6;34281:37;;:::i;:::-;;;34218:326;;;34360:17;34340:3;:16;;;:37;;;;;;;;:::i;:::-;;34336:208;;;34394:32;14780:6;34394:32;;:::i;34336:208::-;34468:16;34448:3;:16;;;:36;;;;;;;;:::i;:::-;;34444:100;;;34501:31;14724:11;34501:31;;:::i;:::-;;;34444:100;34577:28;15064:7;34577:9;:28;:::i;:::-;34558:15;:47;34554:64;;-1:-1:-1;34614:4:0;;33882:767;-1:-1:-1;;;33882:767:0:o;34554:64::-;-1:-1:-1;34636:5:0;;33882:767;-1:-1:-1;;;33882:767:0:o;34657:125::-;-1:-1:-1;;;;;34737:8:0;;34713:4;34737:8;;;:4;:8;;;;;;;;;:20;;-1:-1:-1;;;;;;34749:8:0;;;;;;:4;:8;;;;;;;;34737:20;:37;;;-1:-1:-1;;;;;;;34761:13:0;;;;;:9;:13;;;;;;;;;34657:125::o;25205:85::-;-1:-1:-1;;;;;25252:12:0;;;;;:8;:12;;;;;25267:15;25252:30;;25205:85::o;30196:782::-;30255:9;:14;;;;;;;;;;:27;;;-1:-1:-1;;;;;30255:27:0;30247:68;;;;-1:-1:-1;;;30247:68:0;;;;;;;:::i;:::-;30334:22;30352:3;30334:17;:22::i;:::-;30326:56;;;;-1:-1:-1;;;30326:56:0;;24431:2:1;30326:56:0;;;24413:21:1;24470:2;24450:18;;;24443:30;-1:-1:-1;;;24489:18:1;;;24482:51;24550:18;;30326:56:0;24229:345:1;30326:56:0;30393:24;30413:3;30393:19;:24::i;:::-;30428:9;:14;;;;;;;;;;;30454:4;30428:23;:30;;-1:-1:-1;;;;30428:30:0;-1:-1:-1;;;30428:30:0;;;30539:56;;;;1319:25:1;;;30428:9:0;;30518:4;;30428:9;;1292:18:1;;30539:56:0;;;-1:-1:-1;;30539:56:0;;;;;;;;;;;;;;-1:-1:-1;;;;;30539:56:0;-1:-1:-1;;;30539:56:0;;;30510:86;;;30539:56;30510:86;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30607:9:0;:14;;;;;;;;;;:23;;:34;;-1:-1:-1;;;;30607:34:0;30633:8;;-1:-1:-1;;;30607:34:0;;;;;;;;;30633:8;;-1:-1:-1;30471:125:0;-1:-1:-1;30607:34:0;;30656:32;;;30686:2;30668:7;:14;:20;;30656:32;30652:249;;;30796:4;30787:7;30783:18;30772:29;;30871:7;30860:29;;;;;;;;;;;;:::i;:::-;30830:9;:14;;;;;;;;;;;:59;;;;:27;;;;;:59;;;;;;:::i;:::-;;30652:249;30916:54;;-1:-1:-1;;;;;30940:15:0;1957:31:1;;1939:50;;30916:54:0;;;;;1927:2:1;1912:18;30916:54:0;;;;;;;30236:742;;30196:782;:::o;35050:483::-;35140:16;35174:22;35186:5;35193:2;35174:11;:22::i;:::-;35173:23;:44;;;-1:-1:-1;35200:12:0;;:17;35173:44;35169:62;;;-1:-1:-1;35226:5:0;35219:12;;35169:62;35242:20;35294:1;35279:5;:12;:16;;;;:::i;:::-;-1:-1:-1;;;;;35265:31:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35265:31:0;;35242:54;;35307:9;35331;35355:150;35366:5;:12;35362:1;:16;35355:150;;;35416:2;-1:-1:-1;;;;;35404:14:0;:5;35410:1;35404:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;35404:14:0;;35400:94;;35448:5;35454:1;35448:8;;;;;;;;:::i;:::-;;;;;;;35439:3;35443:1;35439:6;;;;;;;;:::i;:::-;-1:-1:-1;;;;;35439:17:0;;;:6;;;;;;;;;;;:17;35475:3;;;;:::i;:::-;;;;35400:94;35380:3;;;;:::i;:::-;;;;35355:150;;;-1:-1:-1;35522:3:0;;35050:483;-1:-1:-1;;;;35050:483:0:o;34816:228::-;34896:4;;34913:101;34937:5;:12;34933:1;:16;34913:101;;;34987:2;-1:-1:-1;;;;;34975:14:0;:5;34981:1;34975:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;34975:14:0;;34971:31;;;34998:4;34991:11;;;;;34971:31;34951:3;;;;:::i;:::-;;;;34913:101;;30986:304;31044:9;:14;;;;;;;;;;:27;;;-1:-1:-1;;;;;31044:27:0;31036:68;;;;-1:-1:-1;;;31036:68:0;;;;;;;:::i;:::-;31123:25;31144:3;31123:20;:25::i;:::-;31115:62;;;;-1:-1:-1;;;31115:62:0;;25117:2:1;31115:62:0;;;25099:21:1;25156:2;25136:18;;;25129:30;25195:26;25175:18;;;25168:54;25239:18;;31115:62:0;24915:348:1;31115:62:0;31188:24;31208:3;31188:19;:24::i;:::-;31228:54;;-1:-1:-1;;;;;31252:15:0;1957:31:1;;1939:50;;31228:54:0;;;;;1927:2:1;1912:18;31228:54:0;;;;;;;30986:304;:::o;28041:476::-;28182:16;;;28196:1;28182:16;;;;;;;;;28156:23;;28182:16;;;;;;;;;;;-1:-1:-1;28182:16:0;28156:42;;28221:7;28209:6;28216:1;28209:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28209:19:0;;;;:9;;;;;;;;;;;:19;28261:15;;;28274:1;28261:15;;;;;;;;;28239:19;;28261:15;;;;;;;;;;;;;;;;;;;;28239:37;;28296:4;28287:3;28291:1;28287:6;;;;;;;;:::i;:::-;;;;;;;;;;:13;28336:16;;;28350:1;28336:16;;;;;;;;;28311:22;;28336:16;;;;;;;;;;;;-1:-1:-1;28336:16:0;28311:41;;28374:6;28363:5;28369:1;28363:8;;;;;;;;:::i;:::-;;;;;;;;;;:17;28413:14;;;28425:1;28413:14;;;;;;;;;28391:19;;28413:14;;;;;;;;;;;;;;;;;;;;28391:36;;28448:5;28438:4;28443:1;28438:7;;;;;;;;:::i;:::-;;;;;;:15;;;;28464:45;28484:6;28492:3;28497:5;28504:4;28464:19;:45::i;:::-;28145:372;;;;28041:476;;;;:::o;25859:299::-;25923:15;25935:2;25923:11;:15::i;:::-;25922:16;25914:60;;;;-1:-1:-1;;;25914:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25990:13:0;;;;;;:9;:13;;;;;;;;25985:166;;26020:9;26026:2;26020:5;:9::i;:::-;-1:-1:-1;;;;;26044:13:0;;;;;;:9;:13;;;;;;;;:20;;-1:-1:-1;;26044:20:0;26060:4;26044:20;;;;;;26079:13;:22;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26079:22:0;;;;;26121:18;;1111:51:1;;;26121:18:0;;1084::1;26121::0;;;;;;;;25859:299;:::o;31878:1996::-;31941:4;31980:14;;;;;;;;;;;31958:36;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;-1:-1:-1;;;31958:36:0;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;31941:4;;31958:36;;;;-1:-1:-1;;;31958:36:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;31958:36:0;;;;;;;;;;;;;;-1:-1:-1;;;31958:36:0;;;;;;;;;;;;;;-1:-1:-1;;;31958:36:0;;;;;;;;;;-1:-1:-1;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31958:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32032:1;32013:3;:16;;;-1:-1:-1;;;;;32013:20:0;;32005:56;;;;-1:-1:-1;;;32005:56:0;;;;;;;:::i;:::-;32081:3;:12;;;32080:13;32072:42;;;;-1:-1:-1;;;32072:42:0;;;;;;;:::i;:::-;32129:3;:11;;;32125:29;;;-1:-1:-1;32149:5:0;;31878:1996;-1:-1:-1;;31878:1996:0:o;32125:29::-;32185:16;;;;-1:-1:-1;;;;;32165:36:0;:17;32218:3;:16;;;:42;;;;;;;;:::i;:::-;;32214:326;;;32277:37;14836:6;32277:37;;:::i;:::-;;;32214:326;;;32356:17;32336:3;:16;;;:37;;;;;;;;:::i;:::-;;32332:208;;;32390:32;14780:6;32390:32;;:::i;32332:208::-;32464:16;32444:3;:16;;;:36;;;;;;;;:::i;:::-;;32440:100;;;32497:31;14724:11;32497:31;;:::i;:::-;;;32440:100;32611:28;15064:7;32611:9;:28;:::i;:::-;32592:15;:47;32588:65;;-1:-1:-1;32648:5:0;;31878:1996;-1:-1:-1;;;31878:1996:0:o;32588:65::-;32679:11;;;;:18;32733:16;;;;:37;;14724:11;;32733:37;:::i;:::-;-1:-1:-1;;;;;32714:56:0;:15;:56;;:80;;;;-1:-1:-1;32780:7:0;:14;32774:20;;;32714:80;32710:97;;;-1:-1:-1;32803:4:0;;31878:1996;-1:-1:-1;;;;31878:1996:0:o;32710:97::-;32878:9;32860:15;:27;32856:45;;;-1:-1:-1;32896:5:0;;31878:1996;-1:-1:-1;;;;31878:1996:0:o;32856:45::-;32925:11;;;;:18;32967:16;;;;:23;33014:1;33053:6;33014:1;33058;33053:6;:::i;:::-;33030:13;:20;:29;33026:64;;;33066:13;:20;:24;;33089:1;;33066:24;:::i;:::-;33061:29;;33026:64;33110:1;33105:2;:6;33101:18;;;-1:-1:-1;33118:1:0;33101:18;33152:9;33134:15;:27;:83;;;;-1:-1:-1;33172:7:0;:14;33190:1;-1:-1:-1;33172:19:0;:44;;33198:7;:14;:18;;33215:1;;33198:18;:::i;:::-;33172:44;;;33194:1;33172:44;33165:2;:52;;33134:83;33130:100;;;-1:-1:-1;33226:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33130:100::-;33263:23;14881:8;33263:9;:23;:::i;:::-;33245:15;:41;:52;;;;;33296:1;33290:2;:7;;33245:52;:63;;;;;33307:1;33301:2;:7;;33245:63;:75;;;;;33318:2;33312;:8;;33245:75;33241:92;;;-1:-1:-1;33329:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33241:92::-;33366:23;14926:8;33366:9;:23;:::i;:::-;33348:15;:41;:52;;;;;33399:1;33393:2;:7;;33348:52;:63;;;;;33410:1;33404:2;:7;;33348:63;:74;;;;;33421:1;33415:2;:7;;33348:74;33344:91;;;-1:-1:-1;33431:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33344:91::-;33468:23;14926:8;33468:9;:23;:::i;:::-;33450:15;:41;:52;;;;;33501:1;33495:2;:7;;33450:52;:64;;;;;33512:2;33506;:8;;33450:64;33446:81;;;-1:-1:-1;33523:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33446:81::-;-1:-1:-1;33543:1:0;33582:6;33543:1;33587;33582:6;:::i;:::-;33559:13;:20;:29;33555:64;;;33595:13;:20;:24;;33618:1;;33595:24;:::i;:::-;33590:29;;33555:64;33639:1;33634:2;:6;33630:18;;;-1:-1:-1;33647:1:0;33630:18;33681:23;14971:7;33681:9;:23;:::i;:::-;33663:15;:41;:52;;;;;33714:1;33708:2;:7;;33663:52;:64;;;;;33725:2;33719;:8;;33663:64;33659:81;;;-1:-1:-1;33736:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33659:81::-;33773:23;15015:7;33773:9;:23;:::i;:::-;33755:15;:41;:75;;;;-1:-1:-1;33806:13:0;:20;:24;;33829:1;;33806:24;:::i;:::-;33800:2;:30;;33755:75;33751:92;;;-1:-1:-1;33839:4:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;33751:92::-;-1:-1:-1;33861:5:0;;31878:1996;-1:-1:-1;;;;;;;31878:1996:0:o;27365:668::-;27431:13;:20;27454:1;-1:-1:-1;27423:78:0;;;;-1:-1:-1;;;27423:78:0;;25711:2:1;27423:78:0;;;25693:21:1;25750:2;25730:18;;;25723:30;25789:34;25769:18;;;25762:62;-1:-1:-1;;;25840:18:1;;;25833:39;25889:19;;27423:78:0;25509:405:1;27423:78:0;-1:-1:-1;;;;;27520:12:0;;;;;;:8;:12;;;;;;27564:15;;27520:41;;15234:6;;27520:41;:::i;:::-;:59;27512:98;;;;-1:-1:-1;;;27512:98:0;;16880:2:1;27512:98:0;;;16862:21:1;16919:2;16899:18;;;16892:30;16958:28;16938:18;;;16931:56;17004:18;;27512:98:0;16678:350:1;27512:98:0;-1:-1:-1;;;;;27625:13:0;;;;;;:9;:13;;;;;;;;27621:405;;;-1:-1:-1;;;;;27655:13:0;;27671:5;27655:13;;;:9;:13;;;;;:21;;-1:-1:-1;;27655:21:0;;;27691:284;27715:13;:20;27711:24;;27691:284;;;27785:2;-1:-1:-1;;;;;27765:22:0;:13;27779:1;27765:16;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;27765:16:0;:22;27761:199;;;27831:13;27845:20;;:24;;27868:1;;27845:24;:::i;:::-;27831:39;;;;;;;;:::i;:::-;;;;;;;;;;;27812:13;:16;;-1:-1:-1;;;;;27831:39:0;;;;27826:1;;27812:16;;;;;;:::i;:::-;;;;;;;;;:58;;;;;-1:-1:-1;;;;;27812:58:0;;;;;-1:-1:-1;;;;;27812:58:0;;;;;;27893:13;:19;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;27893:19:0;;;;;-1:-1:-1;;;;;;27893:19:0;;;;;;27935:5;;27761:199;27737:3;;;;:::i;:::-;;;;27691:284;;;-1:-1:-1;27994:20:0;;-1:-1:-1;;;;;1129:32:1;;1111:51;;27994:20:0;;1099:2:1;1084:18;27994:20:0;965:203:1;25577:274:0;25636:15;25648:2;25636:11;:15::i;:::-;25635:16;25627:60;;;;-1:-1:-1;;;25627:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25703:8:0;;;;;;:4;:8;;;;;;;;25698:146;;25728:9;25734:2;25728:5;:9::i;:::-;-1:-1:-1;;;;;25752:8:0;;;;;;:4;:8;;;;;;;;:15;;-1:-1:-1;;25752:15:0;25763:4;25752:15;;;;;;25782:8;:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25782:17:0;;;;;25819:13;;1111:51:1;;;25819:13:0;;1084:18:1;25819:13:0;965:203:1;25298:271:0;25356:15;25368:2;25356:11;:15::i;:::-;25355:16;25347:60;;;;-1:-1:-1;;;25347:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25423:8:0;;;;;;:4;:8;;;;;;;;25418:144;;25448:9;25454:2;25448:5;:9::i;:::-;-1:-1:-1;;;;;25472:8:0;;;;;;:4;:8;;;;;;;;:15;;-1:-1:-1;;25472:15:0;25483:4;25472:15;;;;;;25502:7;:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25502:16:0;;;;;25538:12;;1111:51:1;;;25538:12:0;;1084:18:1;25538:12:0;965:203:1;26166:585:0;26226:7;:14;26243:1;-1:-1:-1;26218:66:0;;;;-1:-1:-1;;;26218:66:0;;26253:2:1;26218:66:0;;;26235:21:1;26292:2;26272:18;;;26265:30;26331:34;26311:18;;;26304:62;-1:-1:-1;;;26382:18:1;;;26375:33;26425:19;;26218:66:0;26051:399:1;26218:66:0;-1:-1:-1;;;;;26303:12:0;;;;;;:8;:12;;;;;;26347:15;;26303:41;;15234:6;;26303:41;:::i;:::-;:59;26295:85;;;;-1:-1:-1;;;26295:85:0;;23387:2:1;26295:85:0;;;23369:21:1;23426:2;23406:18;;;23399:30;-1:-1:-1;;;23445:18:1;;;23438:43;23498:18;;26295:85:0;23185:337:1;26295:85:0;-1:-1:-1;;;;;26395:8:0;;;;;;:4;:8;;;;;;;;26391:353;;;-1:-1:-1;;;;;26420:8:0;;26431:5;26420:8;;;:4;:8;;;;;:16;;-1:-1:-1;;26420:16:0;;;26451:248;26475:7;:14;26471:18;;26451:248;;;26533:2;-1:-1:-1;;;;;26519:16:0;:7;26527:1;26519:10;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26519:10:0;:16;26515:169;;;26573:7;26581:14;;:18;;26598:1;;26581:18;:::i;:::-;26573:27;;;;;;;;:::i;:::-;;;;;;;;;;;26560:7;:10;;-1:-1:-1;;;;;26573:27:0;;;;26568:1;;26560:10;;;;;;:::i;:::-;;;;;;;;;:40;;;;;-1:-1:-1;;;;;26560:40:0;;;;;-1:-1:-1;;;;;26560:40:0;;;;;;26623:7;:13;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;26623:13:0;;;;;-1:-1:-1;;;;;;26623:13:0;;;;;;26659:5;;26515:169;26491:3;;;;:::i;:::-;;;;26451:248;;;-1:-1:-1;26718:14:0;;-1:-1:-1;;;;;1129:32:1;;1111:51;;26718:14:0;;1099:2:1;1084:18;26718:14:0;965:203:1;28525:1663:0;28682:10;28677:16;;;;:4;:16;;;;;;;;;:36;;-1:-1:-1;28702:10:0;28697:16;;;;:4;:16;;;;;;;;28677:36;:61;;;-1:-1:-1;28727:10:0;28717:21;;;;:9;:21;;;;;;;;28677:61;28669:98;;;;-1:-1:-1;;;28669:98:0;;;;;;;:::i;:::-;28804:4;:11;28786:7;:14;:29;:61;;;;;28834:6;:13;28819:4;:11;:28;28786:61;:94;;;;;28868:5;:12;28851:6;:13;:29;28786:94;28778:137;;;;-1:-1:-1;;;28778:137:0;;26657:2:1;28778:137:0;;;26639:21:1;26696:2;26676:18;;;26669:30;26735:32;26715:18;;;26708:60;26785:18;;28778:137:0;26455:354:1;28778:137:0;28926:13;:15;;-1:-1:-1;;;;;28926:15:0;;:13;:15;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;28926:15:0;;;;;-1:-1:-1;;;;;28926:15:0;;;;;;;28952:19;;:::i;:::-;-1:-1:-1;;;;;29008:15:0;28982:42;:16;;;;:42;;;;29054:22;29035:16;;;:41;;;29096:10;29091:16;;:4;:16;;;;;;29087:58;;;29128:17;29109:16;;;:36;29087:58;29165:10;29160:16;;;;:4;:16;;;;;;;;29156:57;;;29197:16;29178;;;:35;29156:57;29252:22;29232:3;:16;;;:42;;;;;;;;:::i;:::-;;;:60;;;;-1:-1:-1;29278:9:0;:14;29232:60;:91;;;;15283:12;29296:9;:27;29232:91;29224:128;;;;-1:-1:-1;;;29224:128:0;;27230:2:1;29224:128:0;;;27212:21:1;27269:2;27249:18;;;27242:30;27308:26;27288:18;;;27281:54;27352:18;;29224:128:0;27028:348:1;29224:128:0;29394:7;:14;-1:-1:-1;;;;;29381:28:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29381:28:0;-1:-1:-1;29365:13:0;;;:44;29420:8;;;:16;;;29462:10;29447:25;;29483:10;;;:20;;;29514:9;;;:18;;;29543:7;;;:14;;;-1:-1:-1;29570:372:0;29594:4;:11;29590:1;:15;29570:372;;;29641:4;29646:1;29641:7;;;;;;;;:::i;:::-;;;;;;;29635:21;29660:1;29635:26;:55;;;;29689:1;29671:4;29676:1;29671:7;;;;;;;;:::i;:::-;;;;;;;29665:21;:25;;29635:55;29627:106;;;;-1:-1:-1;;;29627:106:0;;27583:2:1;29627:106:0;;;27565:21:1;27622:2;27602:18;;;27595:30;27661:34;27641:18;;;27634:62;-1:-1:-1;;;27712:18:1;;;27705:36;27758:19;;29627:106:0;27381:402:1;29627:106:0;29758:4;29763:1;29758:7;;;;;;;;:::i;:::-;;;;;;;29752:21;29777:1;29752:26;29748:183;;29842:4;29847:1;29842:7;;;;;;;;:::i;:::-;;;;;;;29826:25;;;;;;29799:3;:13;;;29813:1;29799:16;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;29799:54:0;;;:16;;;;;;;;;;;:54;29748:183;;;29894:21;:3;:13;;;29908:1;29894:16;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;29894:21:0;;;:16;;;;;;;;;;;:21;29748:183;29607:3;;;;:::i;:::-;;;;29570:372;;;-1:-1:-1;29969:15:0;:22;;-1:-1:-1;;;;;29952:40:0;;;:7;;;;:40;;;30013:13;;;;30003:9;:24;;;;;;;;;;;;:30;;;;;;;;-1:-1:-1;;;30003:30:0;-1:-1:-1;;;;;;30003:30:0;;;-1:-1:-1;;;;;30003:30:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;30003:30:0;;;;;;;;;;29952:3;;30003:24;;:30;;;;-1:-1:-1;;30003:30:0;;;;-1:-1:-1;;;30003:30:0;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;30003:30:0;-1:-1:-1;;;;30003:30:0;;;-1:-1:-1;;;30003:30:0;;;;;-1:-1:-1;;;;30003:30:0;;;-1:-1:-1;;;30003:30:0;-1:-1:-1;;;;30003:30:0;;;-1:-1:-1;;;30003:30:0;;;;;-1:-1:-1;;30003:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;30003:30:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;30065:13:0;;;30044:15;:35;;;;;;;-1:-1:-1;30044:35:0;;;;;;;;;;;-1:-1:-1;;;;;30044:35:0;;;;;30065:13;30044:35;;;;;;;;30065:13;;;30044:35;;;;;;;;30136:13;;30151:16;;;;30095:85;;30169:10;;-1:-1:-1;30136:13:0;;;;;30095:85;;;;30118:15;;30095:85;:::i;:::-;;;;;;;;28658:1530;28525:1663;;;;:::o;26759:598::-;26820:8;:15;26838:1;-1:-1:-1;26812:68:0;;;;-1:-1:-1;;;26812:68:0;;28303:2:1;26812:68:0;;;28285:21:1;28342:2;28322:18;;;28315:30;28381:34;28361:18;;;28354:62;-1:-1:-1;;;28432:18:1;;;28425:34;28476:19;;26812:68:0;28101:400:1;26812:68:0;-1:-1:-1;;;;;26899:12:0;;;;;;:8;:12;;;;;;26938:15;;26899:36;;15174:8;;26899:36;:::i;:::-;:54;26891:88;;;;-1:-1:-1;;;26891:88:0;;24081:2:1;26891:88:0;;;24063:21:1;24120:2;24100:18;;;24093:30;-1:-1:-1;;;24139:18:1;;;24132:51;24200:18;;26891:88:0;23879:345:1;26891:88:0;-1:-1:-1;;;;;26994:8:0;;;;;;:4;:8;;;;;;;;26990:360;;;-1:-1:-1;;;;;27019:8:0;;27030:5;27019:8;;;:4;:8;;;;;:16;;-1:-1:-1;;27019:16:0;;;27050:254;27074:8;:15;27070:19;;27050:254;;;27134:2;-1:-1:-1;;;;;27119:17:0;:8;27128:1;27119:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;27119:11:0;:17;27115:174;;;27175:8;27184:15;;:19;;27202:1;;27184:19;:::i;:::-;27175:29;;;;;;;;:::i;:::-;;;;;;;;;;;27161:8;:11;;-1:-1:-1;;;;;27175:29:0;;;;27170:1;;27161:11;;;;;;:::i;:::-;;;;;;;;;:43;;;;;-1:-1:-1;;;;;27161:43:0;;;;;-1:-1:-1;;;;;27161:43:0;;;;;;27227:8;:14;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;27227:14:0;;;;;-1:-1:-1;;;;;;27227:14:0;;;;;;27264:5;;27115:174;27091:3;;;;:::i;:::-;;;;27050:254;;;-1:-1:-1;27323:15:0;;-1:-1:-1;;;;;1129:32:1;;1111:51;;27323:15:0;;1099:2:1;1084:18;27323:15:0;965:203:1;31298:572:0;31369:9;:14;;;;;;;;;;:23;;;-1:-1:-1;;;31369:23:0;;;;31368:24;31360:53;;;;-1:-1:-1;;;31360:53:0;;;;;;;:::i;:::-;31424:9;:14;;;;;;;;;;31450:4;31424:23;;;:30;;-1:-1:-1;;;;31424:30:0;-1:-1:-1;;;31424:30:0;;;31491:22;;:26;;31450:4;31491:26;:::i;:::-;31469:9;:14;;;;;;;;;;:18;-1:-1:-1;;;31469:18:0;;-1:-1:-1;;;;;31469:18:0;:48;31465:256;;31595:9;:14;;;;;;;;;;:18;31544:15;31560:22;;-1:-1:-1;;;31595:18:0;;;-1:-1:-1;;;;;31595:18:0;;:9;;;31544:15;31560:26;;31544:15;;31560:26;:::i;:::-;31544:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31544:43:0;;;31534:54;;;;;;;;;;;;;;;:79;;-1:-1:-1;;;;31534:79:0;-1:-1:-1;;;31534:79:0;;;;;;;;;;;-1:-1:-1;31682:22:0;;:26;;-1:-1:-1;;31682:26:0;:::i;:::-;31666:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;31644:14;;;;;;;;;;;:18;31628:15;:35;;31666:43;;;;;;;;;;;-1:-1:-1;;;;;31666:43:0;;;;31628:15;-1:-1:-1;;;31644:18:0;;;;;31628:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:81;;;;;-1:-1:-1;;;;;31628:81:0;;;;;-1:-1:-1;;;;;31628:81:0;;;;;;31465:256;31759:17;:24;;31731:9;:14;;;;;;;;;;:53;;-1:-1:-1;;;;31731:53:0;-1:-1:-1;;;;;;;;31731:53:0;;;;;;;31795:35;;-1:-1:-1;31795:35:0;;;;;;;;;;;;;;;;;;;;;;31731:53;31795:35;;;;;;;;;;;;;;;;;;;;;31841:21;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;31841:21:0;;;;;;;;;-1:-1:-1;;;;;31841:21:0;;;;;;;;;;;;;;-1:-1:-1;31298:572:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;671:180::-;730:6;783:2;771:9;762:7;758:23;754:32;751:52;;;799:1;796;789:12;751:52;-1:-1:-1;822:23:1;;671:180;-1:-1:-1;671:180:1:o;1355:328::-;1432:6;1440;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1540:29;1559:9;1540:29;:::i;:::-;1530:39;;1588:38;1622:2;1611:9;1607:18;1588:38;:::i;:::-;1578:48;;1673:2;1662:9;1658:18;1645:32;1635:42;;1355:328;;;;;:::o;2000:127::-;2061:10;2056:3;2052:20;2049:1;2042:31;2092:4;2089:1;2082:15;2116:4;2113:1;2106:15;2132:275;2203:2;2197:9;2268:2;2249:13;;-1:-1:-1;;2245:27:1;2233:40;;-1:-1:-1;;;;;2288:34:1;;2324:22;;;2285:62;2282:88;;;2350:18;;:::i;:::-;2386:2;2379:22;2132:275;;-1:-1:-1;2132:275:1:o;2412:187::-;2461:4;-1:-1:-1;;;;;2486:6:1;2483:30;2480:56;;;2516:18;;:::i;:::-;-1:-1:-1;2582:2:1;2561:15;-1:-1:-1;;2557:29:1;2588:4;2553:40;;2412:187::o;2604:464::-;2647:5;2700:3;2693:4;2685:6;2681:17;2677:27;2667:55;;2718:1;2715;2708:12;2667:55;2754:6;2741:20;2785:49;2801:32;2830:2;2801:32;:::i;:::-;2785:49;:::i;:::-;2859:2;2850:7;2843:19;2905:3;2898:4;2893:2;2885:6;2881:15;2877:26;2874:35;2871:55;;;2922:1;2919;2912:12;2871:55;2987:2;2980:4;2972:6;2968:17;2961:4;2952:7;2948:18;2935:55;3035:1;3010:16;;;3028:4;3006:27;2999:38;;;;3014:7;2604:464;-1:-1:-1;;;2604:464:1:o;3073:685::-;3178:6;3186;3194;3202;3255:3;3243:9;3234:7;3230:23;3226:33;3223:53;;;3272:1;3269;3262:12;3223:53;3295:29;3314:9;3295:29;:::i;:::-;3285:39;;3375:2;3364:9;3360:18;3347:32;-1:-1:-1;;;;;3439:2:1;3431:6;3428:14;3425:34;;;3455:1;3452;3445:12;3425:34;3478:50;3520:7;3511:6;3500:9;3496:22;3478:50;:::i;:::-;3468:60;;3575:2;3564:9;3560:18;3547:32;3537:42;;3632:2;3621:9;3617:18;3604:32;3588:48;;3661:2;3651:8;3648:16;3645:36;;;3677:1;3674;3667:12;3645:36;;3700:52;3744:7;3733:8;3722:9;3718:24;3700:52;:::i;:::-;3690:62;;;3073:685;;;;;;;:::o;3763:254::-;3831:6;3839;3892:2;3880:9;3871:7;3867:23;3863:32;3860:52;;;3908:1;3905;3898:12;3860:52;3931:29;3950:9;3931:29;:::i;:::-;3921:39;4007:2;3992:18;;;;3979:32;;-1:-1:-1;;;3763:254:1:o;4022:127::-;4083:10;4078:3;4074:20;4071:1;4064:31;4114:4;4111:1;4104:15;4138:4;4135:1;4128:15;4154:240;4238:1;4231:5;4228:12;4218:143;;4283:10;4278:3;4274:20;4271:1;4264:31;4318:4;4315:1;4308:15;4346:4;4343:1;4336:15;4218:143;4370:18;;4154:240::o;4399:461::-;4452:3;4490:5;4484:12;4517:6;4512:3;4505:19;4543:4;4572:2;4567:3;4563:12;4556:19;;4609:2;4602:5;4598:14;4630:1;4640:195;4654:6;4651:1;4648:13;4640:195;;;4719:13;;-1:-1:-1;;;;;4715:39:1;4703:52;;4775:12;;;;4810:15;;;;4751:1;4669:9;4640:195;;;-1:-1:-1;4851:3:1;;4399:461;-1:-1:-1;;;;;4399:461:1:o;4865:::-;4917:3;4955:5;4949:12;4982:6;4977:3;4970:19;5008:4;5037:2;5032:3;5028:12;5021:19;;5074:2;5067:5;5063:14;5095:1;5105:196;5119:6;5116:1;5113:13;5105:196;;;5184:13;;-1:-1:-1;;;;;;5180:40:1;5168:53;;5241:12;;;;5276:15;;;;5141:1;5134:9;5105:196;;5331:435;5384:3;5422:5;5416:12;5449:6;5444:3;5437:19;5475:4;5504:2;5499:3;5495:12;5488:19;;5541:2;5534:5;5530:14;5562:1;5572:169;5586:6;5583:1;5580:13;5572:169;;;5647:13;;5635:26;;5681:12;;;;5716:15;;;;5608:1;5601:9;5572:169;;5771:258;5843:1;5853:113;5867:6;5864:1;5861:13;5853:113;;;5943:11;;;5937:18;5924:11;;;5917:39;5889:2;5882:10;5853:113;;;5984:6;5981:1;5978:13;5975:48;;;-1:-1:-1;;6019:1:1;6001:16;;5994:27;5771:258::o;6034:::-;6076:3;6114:5;6108:12;6141:6;6136:3;6129:19;6157:63;6213:6;6206:4;6201:3;6197:14;6190:4;6183:5;6179:16;6157:63;:::i;:::-;6274:2;6253:15;-1:-1:-1;;6249:29:1;6240:39;;;;6281:4;6236:50;;6034:258;-1:-1:-1;;6034:258:1:o;6297:616::-;6349:3;6387:5;6381:12;6414:6;6409:3;6402:19;6440:4;6481:2;6476:3;6472:12;6506:11;6533;6526:18;;6583:6;6580:1;6576:14;6569:5;6565:26;6553:38;;6625:2;6618:5;6614:14;6646:1;6656:231;6670:6;6667:1;6664:13;6656:231;;;6741:5;6735:4;6731:16;6726:3;6719:29;6769:38;6802:4;6793:6;6787:13;6769:38;:::i;:::-;6865:12;;;;6761:46;-1:-1:-1;6830:15:1;;;;6692:1;6685:9;6656:231;;;-1:-1:-1;6903:4:1;;6297:616;-1:-1:-1;;;;;;;6297:616:1:o;6918:3057::-;7097:2;7086:9;7079:21;7109:53;7158:2;7147:9;7143:18;7134:6;7128:13;-1:-1:-1;;;;;922:31:1;910:44;;856:104;7109:53;7060:4;7209:2;7201:6;7197:15;7191:22;7222:51;7269:2;7258:9;7254:18;7240:12;-1:-1:-1;;;;;1753:30:1;1741:43;;1688:102;7222:51;-1:-1:-1;7322:2:1;7310:15;;7304:22;-1:-1:-1;;;;;1753:30:1;;7384:2;7369:18;;1741:43;7335:53;7437:2;7429:6;7425:15;7419:22;7450:65;7510:3;7499:9;7495:19;7479:14;7450:65;:::i;:::-;-1:-1:-1;7564:3:1;7552:16;;7546:23;453:13;;446:21;7625:3;7610:19;;434:34;-1:-1:-1;7679:3:1;7667:16;;7661:23;453:13;;446:21;7740:3;7725:19;;434:34;-1:-1:-1;7794:3:1;7782:16;;7776:23;453:13;;446:21;7855:3;7840:19;;434:34;7808:52;7909:3;7901:6;7897:16;7891:23;7933:3;7945:51;7992:2;7981:9;7977:18;7961:14;453:13;446:21;434:34;;383:91;7945:51;8045:2;8037:6;8033:15;8027:22;8005:44;;;8068:6;8093:3;8132:2;8127;8116:9;8112:18;8105:30;8158:65;8218:3;8207:9;8203:19;8187:14;8158:65;:::i;:::-;8144:79;;8272:2;8264:6;8260:15;8254:22;8232:44;;8299:2;8295:7;8321:3;8388:2;8376:9;8368:6;8364:22;8360:31;8355:2;8344:9;8340:18;8333:59;8415:52;8460:6;8444:14;8415:52;:::i;:::-;8401:66;;8516:2;8508:6;8504:15;8498:22;8476:44;;;8539:3;8606:2;8594:9;8586:6;8582:22;8578:31;8573:2;8562:9;8558:18;8551:59;8633:52;8678:6;8662:14;8633:52;:::i;:::-;8619:66;;8735:2;8727:6;8723:15;8717:22;8694:45;;;8758:3;8825:2;8813:9;8805:6;8801:22;8797:31;8792:2;8781:9;8777:18;8770:59;8852:52;8897:6;8880:15;8852:52;:::i;:::-;8838:66;;8954:2;8946:6;8942:15;8936:22;8913:45;;;8977:3;9044:2;9032:9;9024:6;9020:22;9016:31;9011:2;9000:9;8996:18;8989:59;9071:53;9117:6;9100:15;9071:53;:::i;:::-;9057:67;;9174:2;9166:6;9162:15;9156:22;9133:45;;;9197:3;9264:2;9252:9;9244:6;9240:22;9236:31;9231:2;9220:9;9216:18;9209:59;9291:53;9337:6;9320:15;9291:53;:::i;:::-;9277:67;;9394:2;9386:6;9382:15;9376:22;9353:45;;;9418:3;9486:2;9474:9;9466:6;9462:22;9458:31;9452:3;9441:9;9437:19;9430:60;9513:52;9558:6;9541:15;9513:52;:::i;:::-;9499:66;;9615:3;9607:6;9603:16;9597:23;9574:46;;;9640:3;9708:2;9696:9;9688:6;9684:22;9680:31;9674:3;9663:9;9659:19;9652:60;9735:52;9780:6;9763:15;9735:52;:::i;:::-;9825:16;;;9819:23;9882:22;;;9878:31;;;9858:18;;;9851:59;9721:66;-1:-1:-1;9819:23:1;-1:-1:-1;9927:42:1;9721:66;9819:23;9927:42;:::i;:::-;9919:50;6918:3057;-1:-1:-1;;;;;;6918:3057:1:o;9980:183::-;10040:4;-1:-1:-1;;;;;10065:6:1;10062:30;10059:56;;;10095:18;;:::i;:::-;-1:-1:-1;10140:1:1;10136:14;10152:4;10132:25;;9980:183::o;10168:888::-;10221:5;10274:3;10267:4;10259:6;10255:17;10251:27;10241:55;;10292:1;10289;10282:12;10241:55;10328:6;10315:20;10354:4;10378:60;10394:43;10434:2;10394:43;:::i;10378:60::-;10472:15;;;10558:1;10554:10;;;;10542:23;;10538:32;;;10503:12;;;;10582:15;;;10579:35;;;10610:1;10607;10600:12;10579:35;10646:2;10638:6;10634:15;10658:369;10674:6;10669:3;10666:15;10658:369;;;10760:3;10747:17;-1:-1:-1;;;;;10783:11:1;10780:35;10777:125;;;10856:1;10885:2;10881;10874:14;10777:125;10927:57;10980:3;10975:2;10961:11;10953:6;10949:24;10945:33;10927:57;:::i;:::-;10915:70;;-1:-1:-1;11005:12:1;;;;10691;;10658:369;;;-1:-1:-1;11045:5:1;10168:888;-1:-1:-1;;;;;;10168:888:1:o;11061:662::-;11115:5;11168:3;11161:4;11153:6;11149:17;11145:27;11135:55;;11186:1;11183;11176:12;11135:55;11222:6;11209:20;11248:4;11272:60;11288:43;11328:2;11288:43;:::i;11272:60::-;11366:15;;;11452:1;11448:10;;;;11436:23;;11432:32;;;11397:12;;;;11476:15;;;11473:35;;;11504:1;11501;11494:12;11473:35;11540:2;11532:6;11528:15;11552:142;11568:6;11563:3;11560:15;11552:142;;;11634:17;;11622:30;;11672:12;;;;11585;;11552:142;;11728:887;11780:5;11833:3;11826:4;11818:6;11814:17;11810:27;11800:55;;11851:1;11848;11841:12;11800:55;11887:6;11874:20;11913:4;11937:60;11953:43;11993:2;11953:43;:::i;11937:60::-;12031:15;;;12117:1;12113:10;;;;12101:23;;12097:32;;;12062:12;;;;12141:15;;;12138:35;;;12169:1;12166;12159:12;12138:35;12205:2;12197:6;12193:15;12217:369;12233:6;12228:3;12225:15;12217:369;;;12319:3;12306:17;-1:-1:-1;;;;;12342:11:1;12339:35;12336:125;;;12415:1;12444:2;12440;12433:14;12336:125;12486:57;12539:3;12534:2;12520:11;12512:6;12508:24;12504:33;12486:57;:::i;:::-;12474:70;;-1:-1:-1;12564:12:1;;;;12250;;12217:369;;12620:1615;12825:6;12833;12841;12849;12902:3;12890:9;12881:7;12877:23;12873:33;12870:53;;;12919:1;12916;12909:12;12870:53;12959:9;12946:23;-1:-1:-1;;;;;13029:2:1;13021:6;13018:14;13015:34;;;13045:1;13042;13035:12;13015:34;13083:6;13072:9;13068:22;13058:32;;13128:7;13121:4;13117:2;13113:13;13109:27;13099:55;;13150:1;13147;13140:12;13099:55;13186:2;13173:16;13208:4;13232:60;13248:43;13288:2;13248:43;:::i;13232:60::-;13326:15;;;13408:1;13404:10;;;;13396:19;;13392:28;;;13357:12;;;;13432:19;;;13429:39;;;13464:1;13461;13454:12;13429:39;13488:11;;;;13508:148;13524:6;13519:3;13516:15;13508:148;;;13590:23;13609:3;13590:23;:::i;:::-;13578:36;;13541:12;;;;13634;;;;13508:148;;;13675:5;-1:-1:-1;;13718:18:1;;13705:32;;-1:-1:-1;;13749:16:1;;;13746:36;;;13778:1;13775;13768:12;13746:36;13801:62;13855:7;13844:8;13833:9;13829:24;13801:62;:::i;:::-;13791:72;;13916:2;13905:9;13901:18;13888:32;13872:48;;13945:2;13935:8;13932:16;13929:36;;;13961:1;13958;13951:12;13929:36;13984:63;14039:7;14028:8;14017:9;14013:24;13984:63;:::i;:::-;13974:73;;14100:2;14089:9;14085:18;14072:32;14056:48;;14129:2;14119:8;14116:16;14113:36;;;14145:1;14142;14135:12;14113:36;;14168:61;14221:7;14210:8;14199:9;14195:24;14168:61;:::i;14240:348::-;14442:2;14424:21;;;14481:2;14461:18;;;14454:30;14520:26;14515:2;14500:18;;14493:54;14579:2;14564:18;;14240:348::o;14593:347::-;14795:2;14777:21;;;14834:2;14814:18;;;14807:30;14873:25;14868:2;14853:18;;14846:53;14931:2;14916:18;;14593:347::o;14945:340::-;15147:2;15129:21;;;15186:2;15166:18;;;15159:30;-1:-1:-1;;;15220:2:1;15205:18;;15198:46;15276:2;15261:18;;14945:340::o;15290:401::-;15492:2;15474:21;;;15531:2;15511:18;;;15504:30;15570:34;15565:2;15550:18;;15543:62;-1:-1:-1;;;15636:2:1;15621:18;;15614:35;15681:3;15666:19;;15290:401::o;15696:355::-;15898:2;15880:21;;;15937:2;15917:18;;;15910:30;15976:33;15971:2;15956:18;;15949:61;16042:2;16027:18;;15696:355::o;16413:127::-;16474:10;16469:3;16465:20;16462:1;16455:31;16505:4;16502:1;16495:15;16529:4;16526:1;16519:15;16545:128;16585:3;16616:1;16612:6;16609:1;16606:13;16603:39;;;16622:18;;:::i;:::-;-1:-1:-1;16658:9:1;;16545:128::o;17033:397::-;17235:2;17217:21;;;17274:2;17254:18;;;17247:30;17313:34;17308:2;17293:18;;17286:62;-1:-1:-1;;;17379:2:1;17364:18;;17357:31;17420:3;17405:19;;17033:397::o;17714:340::-;17916:2;17898:21;;;17955:2;17935:18;;;17928:30;-1:-1:-1;;;17989:2:1;17974:18;;17967:46;18045:2;18030:18;;17714:340::o;18059:127::-;18120:10;18115:3;18111:20;18108:1;18101:31;18151:4;18148:1;18141:15;18175:4;18172:1;18165:15;18543:135;18582:3;-1:-1:-1;;18603:17:1;;18600:43;;;18623:18;;:::i;:::-;-1:-1:-1;18670:1:1;18659:13;;18543:135::o;18683:380::-;18762:1;18758:12;;;;18805;;;18826:61;;18880:4;18872:6;18868:17;18858:27;;18826:61;18933:2;18925:6;18922:14;18902:18;18899:38;18896:161;;;18979:10;18974:3;18970:20;18967:1;18960:31;19014:4;19011:1;19004:15;19042:4;19039:1;19032:15;18896:161;;18683:380;;;:::o;19068:340::-;19270:2;19252:21;;;19309:2;19289:18;;;19282:30;-1:-1:-1;;;19343:2:1;19328:18;;19321:46;19399:2;19384:18;;19068:340::o;19538:1234::-;-1:-1:-1;;;;;;19720:33:1;;19708:46;;19821:13;;19690:3;;19773:1;;19690:3;;19879:1;19899:18;;;;19952;;;;19979:61;;20033:4;20025:6;20021:17;20011:27;;19979:61;20059:2;20107;20099:6;20096:14;20076:18;20073:38;20070:166;;;-1:-1:-1;;;20134:33:1;;20191:4;20180:16;;20221:4;20141:3;20209:17;20070:166;20252:18;20279:122;;;;20415:1;20410:337;;;;20245:502;;20279:122;-1:-1:-1;;20321:24:1;;20307:12;;;20300:46;20370:16;;;20366:25;;;-1:-1:-1;20279:122:1;;20410:337;19485:1;19478:14;;;19522:4;19509:18;;20504:1;20518:174;20532:6;20529:1;20526:13;20518:174;;;20619:14;;20601:11;;;20597:20;;20590:44;20662:16;;;;20547:10;;20518:174;;;20522:3;;20734:2;20725:6;20720:3;20716:16;20712:25;20705:32;;20245:502;-1:-1:-1;20763:3:1;;19538:1234;-1:-1:-1;;;;;;;;;;19538:1234:1:o;20777:274::-;20906:3;20944:6;20938:13;20960:53;21006:6;21001:3;20994:4;20986:6;20982:17;20960:53;:::i;:::-;21029:16;;;;;20777:274;-1:-1:-1;;20777:274:1:o;21056:439::-;21288:3;21326:6;21320:13;21342:53;21388:6;21383:3;21376:4;21368:6;21364:17;21342:53;:::i;:::-;-1:-1:-1;;;21417:16:1;;21442:18;;;-1:-1:-1;21487:1:1;21476:13;;21056:439;-1:-1:-1;21056:439:1:o;21500:636::-;21580:6;21633:2;21621:9;21612:7;21608:23;21604:32;21601:52;;;21649:1;21646;21639:12;21601:52;21682:9;21676:16;-1:-1:-1;;;;;21707:6:1;21704:30;21701:50;;;21747:1;21744;21737:12;21701:50;21770:22;;21823:4;21815:13;;21811:27;-1:-1:-1;21801:55:1;;21852:1;21849;21842:12;21801:55;21881:2;21875:9;21906:49;21922:32;21951:2;21922:32;:::i;21906:49::-;21978:2;21971:5;21964:17;22018:7;22013:2;22008;22004;22000:11;21996:20;21993:33;21990:53;;;22039:1;22036;22029:12;21990:53;22052:54;22103:2;22098;22091:5;22087:14;22082:2;22078;22074:11;22052:54;:::i;:::-;22125:5;21500:636;-1:-1:-1;;;;;21500:636:1:o;22141:470::-;22320:3;22358:6;22352:13;22374:53;22420:6;22415:3;22408:4;22400:6;22396:17;22374:53;:::i;:::-;22490:13;;22449:16;;;;22512:57;22490:13;22449:16;22546:4;22534:17;;22512:57;:::i;:::-;22585:20;;22141:470;-1:-1:-1;;;;22141:470:1:o;22616:220::-;22765:2;22754:9;22747:21;22728:4;22785:45;22826:2;22815:9;22811:18;22803:6;22785:45;:::i;24785:125::-;24825:4;24853:1;24850;24847:8;24844:34;;;24858:18;;:::i;:::-;-1:-1:-1;24895:9:1;;24785:125::o;25268:236::-;25307:3;-1:-1:-1;;;;;25380:2:1;25377:1;25373:10;25410:2;25407:1;25403:10;25441:3;25437:2;25433:12;25428:3;25425:21;25422:47;;;25449:18;;:::i;25919:127::-;25980:10;25975:3;25971:20;25968:1;25961:31;26011:4;26008:1;26001:15;26035:4;26032:1;26025:15;26814:209;26852:3;-1:-1:-1;;;;;26933:2:1;26926:5;26922:14;26960:2;26951:7;26948:15;26945:41;;;26966:18;;:::i;:::-;27015:1;27002:15;;26814:209;-1:-1:-1;;;26814:209:1:o;27788:308::-;-1:-1:-1;;;;;27993:31:1;;27975:50;;27963:2;27948:18;;28034:56;28086:2;28071:18;;28063:6;28034:56;:::i

Swarm Source

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