Hierarchy

  • ContractFactory
    • SuperfluidMock__factory

Constructors

  • Parameters

    • Rest ...args: SuperfluidMockConstructorParams

    Returns SuperfluidMock__factory

Properties

abi: readonly [{
    inputs: readonly [{
        internalType: "bool";
        name: "nonUpgradable";
        type: "bool";
    }, {
        internalType: "bool";
        name: "appWhiteListingEnabled";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_code";
        type: "uint256";
    }];
    name: "APP_RULE";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_AGREEMENT_ALREADY_REGISTERED";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_AGREEMENT_CALLBACK_IS_NOT_ACTION";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_AGREEMENT_IS_NOT_REGISTERED";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_CALL_AGREEMENT_WITH_CTX_FROM_WRONG_ADDRESS";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_CALL_APP_ACTION_WITH_CTX_FROM_WRONG_ADDRESS";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_CANNOT_DOWNGRADE_TO_NON_UPGRADEABLE";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_INVALID_CONFIG_WORD";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_MAX_256_AGREEMENTS";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_MUST_BE_CONTRACT";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_NEED_MORE_GAS";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_NON_UPGRADEABLE";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_NON_ZERO_LENGTH_PLACEHOLDER_CTX";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_NOT_A_SUPER_APP";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_NO_APP_REGISTRATION_PERMISSION";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_ONLY_GOVERNANCE";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_ONLY_LISTED_AGREEMENT";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_RECEIVER_IS_NOT_SUPER_APP";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_SENDER_IS_NOT_SUPER_APP";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_SOURCE_APP_NEEDS_HIGHER_APP_LEVEL";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_SUPER_APP_ALREADY_REGISTERED";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_SUPER_APP_IS_JAILED";
    type: "error";
}, {
    inputs: readonly [];
    name: "HOST_UNKNOWN_BATCH_CALL_OPERATION_TYPE";
    type: "error";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "address";
        name: "code";
        type: "address";
    }];
    name: "AgreementClassRegistered";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "address";
        name: "code";
        type: "address";
    }];
    name: "AgreementClassUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }];
    name: "AppRegistered";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "bytes32";
        name: "uuid";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "address";
        name: "codeAddress";
        type: "address";
    }];
    name: "CodeUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "contract ISuperfluidGovernance";
        name: "oldGov";
        type: "address";
    }, {
        indexed: false;
        internalType: "contract ISuperfluidGovernance";
        name: "newGov";
        type: "address";
    }];
    name: "GovernanceReplaced";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint8";
        name: "version";
        type: "uint8";
    }];
    name: "Initialized";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "reason";
        type: "uint256";
    }];
    name: "Jail";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "beaconProxy";
        type: "address";
    }, {
        indexed: false;
        internalType: "address";
        name: "newBeaconLogic";
        type: "address";
    }];
    name: "PoolBeaconLogicUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "contract ISuperTokenFactory";
        name: "newFactory";
        type: "address";
    }];
    name: "SuperTokenFactoryUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "contract ISuperToken";
        name: "token";
        type: "address";
    }, {
        indexed: false;
        internalType: "address";
        name: "code";
        type: "address";
    }];
    name: "SuperTokenLogicUpdated";
    type: "event";
}, {
    inputs: readonly [];
    name: "APP_WHITE_LISTING_ENABLED";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "CALLBACK_GAS_LIMIT";
    outputs: readonly [{
        internalType: "uint64";
        name: "";
        type: "uint64";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MAX_APP_CALLBACK_LEVEL";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MAX_NUM_AGREEMENTS";
    outputs: readonly [{
        internalType: "uint32";
        name: "";
        type: "uint32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "NON_UPGRADABLE_DEPLOYMENT";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "bitmap";
        type: "uint256";
    }, {
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }];
    name: "addToAgreementClassesBitmap";
    outputs: readonly [{
        internalType: "uint256";
        name: "newBitmap";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "targetApp";
        type: "address";
    }];
    name: "allowCompositeApp";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }, {
        internalType: "int256";
        name: "appCreditUsedDelta";
        type: "int256";
    }];
    name: "appCallbackPop";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }, {
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "uint256";
        name: "appCreditGranted";
        type: "uint256";
    }, {
        internalType: "int256";
        name: "appCreditUsed";
        type: "int256";
    }, {
        internalType: "contract ISuperfluidToken";
        name: "appCreditToken";
        type: "address";
    }];
    name: "appCallbackPush";
    outputs: readonly [{
        internalType: "bytes";
        name: "appCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "uint32";
            name: "operationType";
            type: "uint32";
        }, {
            internalType: "address";
            name: "target";
            type: "address";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        internalType: "struct ISuperfluid.Operation[]";
        name: "operations";
        type: "tuple[]";
    }];
    name: "batchCall";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClass";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "userData";
        type: "bytes";
    }];
    name: "callAgreement";
    outputs: readonly [{
        internalType: "bytes";
        name: "returnedData";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClass";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "userData";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "callAgreementWithContext";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "returnedData";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }];
    name: "callAppAction";
    outputs: readonly [{
        internalType: "bytes";
        name: "returnedData";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "callAppActionWithContext";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }, {
        internalType: "bool";
        name: "isTermination";
        type: "bool";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "callAppAfterCallback";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "bytes";
        name: "callData";
        type: "bytes";
    }, {
        internalType: "bool";
        name: "isTermination";
        type: "bool";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "callAppBeforeCallback";
    outputs: readonly [{
        internalType: "bytes";
        name: "cbdata";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "castrate";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperToken";
        name: "token";
        type: "address";
    }, {
        internalType: "address";
        name: "newAdmin";
        type: "address";
    }];
    name: "changeSuperTokenAdmin";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "n";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "ctxFunc1";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "superToken";
        type: "address";
    }, {
        internalType: "address";
        name: "agreementClass";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "agreementId";
        type: "bytes32";
    }, {
        internalType: "bytes";
        name: "agreementData";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "cbdata";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "ctxFunc2";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }, {
        internalType: "int256";
        name: "appCreditUsedMore";
        type: "int256";
    }];
    name: "ctxUseCredit";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "decodeCtx";
    outputs: readonly [{
        components: readonly [{
            internalType: "uint8";
            name: "appCallbackLevel";
            type: "uint8";
        }, {
            internalType: "uint8";
            name: "callType";
            type: "uint8";
        }, {
            internalType: "uint256";
            name: "timestamp";
            type: "uint256";
        }, {
            internalType: "address";
            name: "msgSender";
            type: "address";
        }, {
            internalType: "bytes4";
            name: "agreementSelector";
            type: "bytes4";
        }, {
            internalType: "bytes";
            name: "userData";
            type: "bytes";
        }, {
            internalType: "uint256";
            name: "appCreditGranted";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "appCreditWantedDeprecated";
            type: "uint256";
        }, {
            internalType: "int256";
            name: "appCreditUsed";
            type: "int256";
        }, {
            internalType: "address";
            name: "appAddress";
            type: "address";
        }, {
            internalType: "contract ISuperfluidToken";
            name: "appCreditToken";
            type: "address";
        }];
        internalType: "struct ISuperfluid.Context";
        name: "context";
        type: "tuple";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "uint32";
            name: "operationType";
            type: "uint32";
        }, {
            internalType: "address";
            name: "target";
            type: "address";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        internalType: "struct ISuperfluid.Operation[]";
        name: "operations";
        type: "tuple[]";
    }];
    name: "forwardBatchCall";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }];
    name: "getAgreementClass";
    outputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClass";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "appAddr";
        type: "address";
    }];
    name: "getAppCallbackLevel";
    outputs: readonly [{
        internalType: "uint8";
        name: "";
        type: "uint8";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }];
    name: "getAppManifest";
    outputs: readonly [{
        internalType: "bool";
        name: "isSuperApp";
        type: "bool";
    }, {
        internalType: "bool";
        name: "isJailed";
        type: "bool";
    }, {
        internalType: "uint256";
        name: "noopMask";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getCodeAddress";
    outputs: readonly [{
        internalType: "address";
        name: "codeAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getGovernance";
    outputs: readonly [{
        internalType: "contract ISuperfluidGovernance";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getNow";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getSuperTokenFactory";
    outputs: readonly [{
        internalType: "contract ISuperTokenFactory";
        name: "factory";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getSuperTokenFactoryLogic";
    outputs: readonly [{
        internalType: "address";
        name: "logic";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperfluidGovernance";
        name: "gov";
        type: "address";
    }];
    name: "initialize";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClass";
        type: "address";
    }];
    name: "isAgreementClassListed";
    outputs: readonly [{
        internalType: "bool";
        name: "yes";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }];
    name: "isAgreementTypeListed";
    outputs: readonly [{
        internalType: "bool";
        name: "yes";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }];
    name: "isApp";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }];
    name: "isAppJailed";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "contract ISuperApp";
        name: "targetApp";
        type: "address";
    }];
    name: "isCompositeAppAllowed";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "isCtxValid";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "forwarder";
        type: "address";
    }];
    name: "isTrustedForwarder";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }];
    name: "jailApp";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }, {
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "uint256";
        name: "reason";
        type: "uint256";
    }];
    name: "jailApp";
    outputs: readonly [{
        internalType: "bytes";
        name: "newCtx";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "bitmap";
        type: "uint256";
    }];
    name: "mapAgreementClasses";
    outputs: readonly [{
        internalType: "contract ISuperAgreement[]";
        name: "agreementClasses";
        type: "address[]";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "proxiableUUID";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClassLogic";
        type: "address";
    }];
    name: "registerAgreementClass";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "configWord";
        type: "uint256";
    }];
    name: "registerApp";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "uint256";
        name: "configWord";
        type: "uint256";
    }];
    name: "registerApp";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperApp";
        name: "app";
        type: "address";
    }, {
        internalType: "uint256";
        name: "configWord";
        type: "uint256";
    }];
    name: "registerAppByFactory";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "configWord";
        type: "uint256";
    }, {
        internalType: "string";
        name: "registrationKey";
        type: "string";
    }];
    name: "registerAppWithKey";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "bitmap";
        type: "uint256";
    }, {
        internalType: "bytes32";
        name: "agreementType";
        type: "bytes32";
    }];
    name: "removeFromAgreementClassesBitmap";
    outputs: readonly [{
        internalType: "uint256";
        name: "newBitmap";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperfluidGovernance";
        name: "newGov";
        type: "address";
    }];
    name: "replaceGovernance";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "dataWithPlaceHolderCtx";
        type: "bytes";
    }, {
        internalType: "bytes";
        name: "ctx";
        type: "bytes";
    }];
    name: "testCtxFuncX";
    outputs: readonly [{
        internalType: "bytes";
        name: "returnedData";
        type: "bytes";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperAgreement";
        name: "agreementClassLogic";
        type: "address";
    }];
    name: "updateAgreementClass";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newAddress";
        type: "address";
    }];
    name: "updateCode";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newLogic";
        type: "address";
    }];
    name: "updatePoolBeaconLogic";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperTokenFactory";
        name: "newFactory";
        type: "address";
    }];
    name: "updateSuperTokenFactory";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "contract ISuperToken";
        name: "token";
        type: "address";
    }, {
        internalType: "address";
        name: "newLogicOverride";
        type: "address";
    }];
    name: "updateSuperTokenLogic";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "versionRecipient";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "pure";
    type: "function";
}]
bytecode: "0x60c06040523480156200001157600080fd5b5060405162005d0838038062005d0883398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c09620000ff6000396000818161084f01528181612319015281816127f501528181612aa00152612d20015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c480152615c096000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b610396366004614931565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614955565b610d9b565b3480156103c957600080fd5b5061039b6103d8366004614931565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149e4565b61107b565b60405161040a9190614aca565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614ba0565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b610486366004614931565b6112df565b34801561049757600080fd5b5061039b6104a6366004614931565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bef565b6114ac565b34801561050657600080fd5b50610532610515366004614931565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c64565b6114c2565b60405161040a9190614c98565b34801561057b57600080fd5b5061058f61058a366004614d79565b6114d3565b60405161040a929190614e25565b3480156105a957600080fd5b5061039b6105b8366004614931565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b610655366004614931565b611804565b34801561066657600080fd5b5061039b610675366004614931565b611a87565b34801561068657600080fd5b50610532610695366004614931565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e4a565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614e95565b611cc1565b61039b6106e8366004614e95565b611cd7565b3480156106f957600080fd5b50610532610708366004614931565b611ce2565b34801561071957600080fd5b5061039b610728366004614931565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149e4565b611dae565b34801561077757600080fd5b506103fd610786366004614f09565b611efd565b34801561079757600080fd5b506105326107a6366004614931565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f1366004614931565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e4a565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f84565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fa6565b612317565b3480156108bd57600080fd5b506104536108cc366004614fa6565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fbf565b6123d2565b3480156108fd57600080fd5b506103fd61090c36600461501b565b612493565b34801561091d57600080fd5b5061053261092c366004614955565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f84565b6127aa565b34801561099957600080fd5b5061039b6109a836600461509d565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150e8565b612869565b3480156109ee57600080fd5b5061039b6109fd366004614931565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fa6565b61298e565b60405161040a9190615129565b348015610a3b57600080fd5b5061039b610a4a366004615176565b612a73565b348015610a5b57600080fd5b50610a6f610a6a3660046151a2565b612af2565b60405161040a9695949392919061526c565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fa6565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff36600461509d565b612bdf565b60405161040a9291906152c5565b348015610b1e57600080fd5b50610453612c2b565b348015610b3357600080fd5b5061039b610b42366004615176565b612cf3565b348015610b5357600080fd5b506103fd610b623660046152de565b612dfe565b348015610b7357600080fd5b50610b87610b82366004614931565b612ef6565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614955565b612f45565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615349565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615378565b81548110610ce857610ce861538b565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615349565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148b4565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a09050565b6110f1576110f16153a1565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112805761117e81613212565b15611218578080602001905181019061119791906153fc565b93506111a2846130a0565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060149050613266565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060169050613266565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132e7565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190615430565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f89190615430565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e613266565b50565b60606114ba33858585613524565b949350505050565b6114ca6148c1565b6112d982613635565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a09050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613700565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138349050565b9650905080156116c2578580602001905181019061168191906153fc565b965061168c876130a0565b611698576116986153a1565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613700565b96506116cb565b6116cb866138ef565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061544d565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139fa565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148b4565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c34565b6040518463ffffffff1660e01b8152600401611b969392919061546a565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615349565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a09050565b611c5557611c556153a1565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061548e565b905250611cb781613700565b9695505050505050565b611cd3611ccc613cbc565b8383613d24565b5050565b611cd3338383613d24565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a09050565b611e2457611e246153a1565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112ba57611eb181613212565b15611ed15780806020019051810190611eca91906153fc565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a6016613266565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a09050565b611f7357611f736153a1565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154b6565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613700565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615349565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615378565b815481106121405761214061538b565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061548e565b90525061220981613700565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615378565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144c0565b6114a93382614569565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615378565b815481106123b6576123b661538b565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a09050565b612448576124486153a1565b6124528484613266565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a09050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614638565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613700565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138349050565b91509150811561278f578080602001905181019061273a91906153fc565b99506127458a6130a0565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613700565b9950612798565b612798816138ef565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615378565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144c0915050565b6128643384614569565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a092505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614add565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a6b576001821b841615612a605760018281548110612a0d57612a0d61538b565b6000918252602090912001546001600160a01b03168382612a2d81615523565b935081518110612a3f57612a3f61538b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8160010191506129e5565b825250919050565b816001600160a01b03163b600003612a9e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae857612ae8604051806040016040528060028152602001616b3160f01b815250336144c0565b611cd38282614569565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4657612c466153a1565b7f000000000000000000000000000000000000000000000000000000000000000015612c7c57506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190615430565b816001600160a01b03163b600003612d1e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae8576000612d4f33614694565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d8e9030908590879060040161546a565b602060405180830381865afa158015612dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dcf9190615349565b600114905080612df257604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614569565b60606000612e7586868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061470e92505050565b90506000306001600160a01b031682604051612e91919061553c565b600060405180830381855afa9150503d8060008114612ecc576040519150601f19603f3d011682016040523d82523d6000602084013e612ed1565b606091505b50935090508015612ee35750506114ba565b612eec836138ef565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f3d57805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f76576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300257600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffd9190615430565b613004565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561304b57600080fd5b505af115801561305f573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130da576130da6153a1565b6130e4848461470e565b9350622dc6c060005a9050871561315a57886001600160a01b0316828760405161310e919061553c565b6000604051808303818686fa925050503d806000811461314a576040519150601f19603f3d011682016040523d82523d6000602084013e61314f565b606091505b5090945092506131bd565b886001600160a01b03168287604051613173919061553c565b60006040518083038160008787f1925050503d80600081146131b1576040519150601f19603f3d011682016040523d82523d6000602084013e6131b6565b606091505b5090945092505b83613206576131cb816147c5565b6131ed57866131e2576131dd836138ef565b613206565b6131dd89600a613266565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322657506000919050565b602082810151906000908214613240575060009392505050565b50604083015161324f816147db565b61325a906040615558565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132db9084815260200190565b60405180910390a25050565b6006546060901561330e5760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b03841660009081526004602052604081205485918190036133495760405163163cbe4360e01b815260040160405180910390fd5b61800081161561336b57604051628e12d960e21b815260040160405180910390fd5b83600061337782614638565b90506001600160e01b031981166330d9c91560e01b14806133a857506001600160e01b0319811663d86ed3e560e01b145b806133c357506001600160e01b03198116630221347d60e61b145b806133de57506001600160e01b0319811663230dbd2960e01b145b806133f957506001600160e01b03198116635f9e7d7760e01b145b8061341457506001600160e01b031981166353c11f9960e01b145b15613432576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134a990613700565b905060006134b98a898b85613834565b97509050801561350757868060200190518101906134d791906153fc565b91506134e2826130a0565b6135025760405163a85ba64f60e01b8152601460048201526024016111c3565b613510565b613510876138ef565b505060006006555092979650505050505050565b6006546060901561354b5760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355581612099565b6135725760405163619c535960e01b815260040160405180910390fd5b600061357d85614638565b60408051610160810182526000808252600160208301529293506136009181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613700565b905060006136118888600085613834565b955090508061362357613623856138ef565b50506000600655509095945050505050565b61363d6148c1565b60608083806020019051810190613654919061556b565b8151919350915060009061367190840160209081019085016155c4565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c2919084018101908401615648565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff16111561372e5760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b161790506000608061375b8560e00151614814565b6001600160801b0316901b6137738560c00151614814565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137a8959493929190615693565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138129291602001614e25565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b03861661384e5761384e6153a1565b613858858461470e565b9450856001600160a01b03168486604051613873919061553c565b60006040518083038185875af1925050503d80600081146138b0576040519150601f19603f3d011682016040523d82523d6000602084013e6138b5565b606091505b50909250905081156138e65780516000036138e65760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139415760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f15760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614aca565b81518060208401fd5b6000613a247f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7a5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adc9190615349565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b565760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bae5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bd6817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd35750613cd333611b55565b613d175760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614479576000848483818110613d4457613d4461538b565b9050602002810190613d5691906156df565b613d649060208101906156f5565b905060001963ffffffff821601613e5857600080868685818110613d8a57613d8a61538b565b9050602002810190613d9c91906156df565b613daa90604081019061571b565b810190613db79190615176565b91509150868685818110613dcd57613dcd61538b565b9050602002810190613ddf91906156df565b613df0906040810190602001614931565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050505050614470565b60011963ffffffff821601613f63576000806000878786818110613e7e57613e7e61538b565b9050602002810190613e9091906156df565b613e9e90604081019061571b565b810190613eab9190615761565b925092509250878786818110613ec357613ec361538b565b9050602002810190613ed591906156df565b613ee6906040810190602001614931565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4357600080fd5b505af1158015613f57573d6000803e3d6000fd5b50505050505050614470565b60021963ffffffff821601614022576000806000878786818110613f8957613f8961538b565b9050602002810190613f9b91906156df565b613fa990604081019061571b565b810190613fb691906157a2565b925092509250878786818110613fce57613fce61538b565b9050602002810190613fe091906156df565b613ff1906040810190602001614931565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2994939291906157f0565b60031963ffffffff8216016140db576000808686858181106140465761404661538b565b905060200281019061405891906156df565b61406690604081019061571b565b8101906140739190615176565b915091508686858181106140895761408961538b565b905060200281019061409b91906156df565b6140ac906040810190602001614931565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60041963ffffffff821601614194576000808686858181106140ff576140ff61538b565b905060200281019061411191906156df565b61411f90604081019061571b565b81019061412c9190615176565b915091508686858181106141425761414261538b565b905060200281019061415491906156df565b614165906040810190602001614931565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60641963ffffffff821601614289578484838181106141b5576141b561538b565b90506020028101906141c791906156df565b6141d8906040810190602001614931565b6001600160a01b031663ca789464878787868181106141f9576141f961538b565b905060200281019061420b91906156df565b61421990604081019061571b565b8101906142269190614fa6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b50505050614470565b60651963ffffffff8216016142ee578484838181106142aa576142aa61538b565b90506020028101906142bc91906156df565b6142cd906040810190602001614931565b6001600160a01b031663245887fc878787868181106141f9576141f961538b565b60c81963ffffffff82160161438b576000808686858181106143125761431261538b565b905060200281019061432491906156df565b61433290604081019061571b565b81019061433f9190615823565b91509150614383888888878181106143595761435961538b565b905060200281019061436b91906156df565b61437c906040810190602001614931565b8484613524565b505050614470565b60c91963ffffffff8216016144575761444d868686858181106143b0576143b061538b565b90506020028101906143c291906156df565b6143d3906040810190602001614931565b856143de57346143e1565b60005b8888878181106143f3576143f361538b565b905060200281019061440591906156df565b61441390604081019061571b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132e792505050565b5060019250614470565b60405163b477011560e01b815260040160405180910390fd5b50600101613d28565b503415801590614487575080155b156144ba5760405133903480156108fc02916000818181858888f193505050501580156144b8573d6000803e3d6000fd5b505b50505050565b60006144cc8284614881565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba91614509913091879060040161546a565b602060405180830381865afa158015614526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454a9190615349565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff198116151580614580575060ff8116155b8061458e5750618000811615155b156145ac57604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145e3576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b600060048251101561468c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613c9f565b815180830151606091908015614737576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161474e816147db565b6147589190615378565b6001600160401b0381111561476f5761476f614add565b6040519080825280601f01601f191660200182016040528015614799576020820181803683370190505b506040516020016147ad949392919061587c565b60405160208183030381529060405291505092915050565b60006147d26040836158cb565b5a111592915050565b60008082601f16116147ee5760006147f1565b60015b60ff166147ff6020846158cb565b6148099190615558565b6112d99060206158ed565b60006001600160801b0382111561487d5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b60008282604051602001614896929190615904565b60405160208183030381529060405280519060200120905092915050565b61024a8061598a83390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561494357600080fd5b813561494e8161491c565b9392505050565b6000806040838503121561496857600080fd5b82356149738161491c565b915060208301356149838161491c565b809150509250929050565b60008083601f8401126149a057600080fd5b5081356001600160401b038111156149b757600080fd5b6020830191508360208285010111156149cf57600080fd5b9250929050565b80151581146114a957600080fd5b600080600080600080608087890312156149fd57600080fd5b8635614a088161491c565b955060208701356001600160401b0380821115614a2457600080fd5b614a308a838b0161498e565b909750955060408901359150614a45826149d6565b90935060608801359080821115614a5b57600080fd5b50614a6889828a0161498e565b979a9699509497509295939492505050565b60005b83811015614a95578181015183820152602001614a7d565b50506000910152565b60008151808452614ab6816020860160208601614a7a565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614a9e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b1b57614b1b614add565b604052919050565b60006001600160401b03821115614b3c57614b3c614add565b50601f01601f191660200190565b600082601f830112614b5b57600080fd5b8135614b6e614b6982614b23565b614af3565b818152846020838601011115614b8357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bb357600080fd5b8235614bbe8161491c565b915060208301356001600160401b03811115614bd957600080fd5b614be585828601614b4a565b9150509250929050565b600080600060608486031215614c0457600080fd5b8335614c0f8161491c565b925060208401356001600160401b0380821115614c2b57600080fd5b614c3787838801614b4a565b93506040860135915080821115614c4d57600080fd5b50614c5a86828701614b4a565b9150509250925092565b600060208284031215614c7657600080fd5b81356001600160401b03811115614c8c57600080fd5b6114ba84828501614b4a565b60208152614cac60208201835160ff169052565b60006020830151614cc2604084018260ff169052565b50604083015160608301526060830151614ce760808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d1a610180850183614a9e565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d60818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614d9457600080fd5b8735614d9f8161491c565b965060208801356001600160401b0380821115614dbb57600080fd5b614dc78b838c0161498e565b909850965060408a0135915080821115614de057600080fd5b614dec8b838c0161498e565b909650945060608a0135915080821115614e0557600080fd5b50614e128a828b0161498e565b989b979a50959850939692959293505050565b604081526000614e386040830185614a9e565b82810360208401526122098185614a9e565b600080600060408486031215614e5f57600080fd5b83356001600160401b03811115614e7557600080fd5b614e818682870161498e565b909790965060209590950135949350505050565b60008060208385031215614ea857600080fd5b82356001600160401b0380821115614ebf57600080fd5b818501915085601f830112614ed357600080fd5b813581811115614ee257600080fd5b8660208260051b8501011115614ef757600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2257600080fd5b86356001600160401b03811115614f3857600080fd5b614f4489828a0161498e565b9097509550506020870135614f588161491c565b935060408701359250606087013591506080870135614f768161491c565b809150509295509295509295565b60008060408385031215614f9757600080fd5b50508035926020909101359150565b600060208284031215614fb857600080fd5b5035919050565b60008060008060608587031215614fd557600080fd5b84356001600160401b03811115614feb57600080fd5b614ff78782880161498e565b909550935050602085013561500b8161491c565b9396929550929360400135925050565b60008060008060006060868803121561503357600080fd5b853561503e8161491c565b945060208601356001600160401b038082111561505a57600080fd5b61506689838a0161498e565b9096509450604088013591508082111561507f57600080fd5b5061508c8882890161498e565b969995985093965092949392505050565b6000806000604084860312156150b257600080fd5b8335925060208401356001600160401b038111156150cf57600080fd5b6150db8682870161498e565b9497909650939450505050565b600080602083850312156150fb57600080fd5b82356001600160401b0381111561511157600080fd5b61511d8582860161498e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561516a5783516001600160a01b031683529284019291840191600101615145565b50909695505050505050565b6000806040838503121561518957600080fd5b82356151948161491c565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151c057600080fd5b89356151cb8161491c565b985060208a01356151db8161491c565b975060408a0135965060608a01356001600160401b03808211156151fe57600080fd5b61520a8d838e0161498e565b909850965060808c013591508082111561522357600080fd5b61522f8d838e0161498e565b909650945060a08c013591508082111561524857600080fd5b506152558c828d0161498e565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061529f90830186614a9e565b82810360808401526152b18186614a9e565b905082810360a084015261208c8185614a9e565b8281526040602082015260006114ba6040830184614a9e565b600080600080604085870312156152f457600080fd5b84356001600160401b038082111561530b57600080fd5b6153178883890161498e565b9096509450602087013591508082111561533057600080fd5b5061533d8782880161498e565b95989497509550505050565b60006020828403121561535b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d9615362565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153c857600080fd5b81516153d6614b6982614b23565b8181528460208386010111156153eb57600080fd5b6114ba826020830160208701614a7a565b60006020828403121561540e57600080fd5b81516001600160401b0381111561542457600080fd5b6114ba848285016153b7565b60006020828403121561544257600080fd5b815161494e8161491c565b60006020828403121561545f57600080fd5b815161494e816149d6565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154ae576154ae615362565b505092915050565b600060ff821660ff81036154cc576154cc615362565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006001820161553557615535615362565b5060010190565b6000825161554e818460208701614a7a565b9190910192915050565b808201808211156112d9576112d9615362565b6000806040838503121561557e57600080fd5b82516001600160401b038082111561559557600080fd5b6155a1868387016153b7565b935060208501519150808211156155b757600080fd5b50614be5858286016153b7565b600080600080600060a086880312156155dc57600080fd5b855194506020860151935060408601516155f58161491c565b60608701519093506001600160e01b03198116811461561357600080fd5b60808701519092506001600160401b0381111561562f57600080fd5b61563b888289016153b7565b9150509295509295909350565b6000806000806080858703121561565e57600080fd5b845193506020850151925060408501516156778161491c565b60608601519092506156888161491c565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156d490830184614a9e565b979650505050505050565b60008235605e1983360301811261554e57600080fd5b60006020828403121561570757600080fd5b813563ffffffff8116811461494e57600080fd5b6000808335601e1984360301811261573257600080fd5b8301803591506001600160401b0382111561574c57600080fd5b6020019150368190038213156149cf57600080fd5b60008060006060848603121561577657600080fd5b83356157818161491c565b925060208401356157918161491c565b929592945050506040919091013590565b6000806000606084860312156157b757600080fd5b83356157c28161491c565b92506020840135915060408401356001600160401b038111156157e457600080fd5b614c5a86828701614b4a565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614a9e565b6000806040838503121561583657600080fd5b82356001600160401b038082111561584d57600080fd5b61585986838701614b4a565b9350602085013591508082111561586f57600080fd5b50614be585828601614b4a565b60008551602061588f8285838b01614a7a565b818401915086825285516158a881838501848a01614a7a565b85519201916158bc81838501848901614a7a565b91909101019695505050505050565b6000826158e857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d9615362565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614a9e56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea26469706673582212206902a7db24b0d3a778c1f364c2041c6224c0ba5a54b2a99ab7f21c6f5b9e285964736f6c63430008170033a26469706673582212207e43a6575dc8e2fa2a990c5657f67cff8a041baa7481620a4fd4a504d8ce577164736f6c63430008170033" = "0x60c06040523480156200001157600080fd5b5060405162005d0838038062005d0883398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c09620000ff6000396000818161084f01528181612319015281816127f501528181612aa00152612d20015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c480152615c096000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b610396366004614931565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614955565b610d9b565b3480156103c957600080fd5b5061039b6103d8366004614931565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149e4565b61107b565b60405161040a9190614aca565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614ba0565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b610486366004614931565b6112df565b34801561049757600080fd5b5061039b6104a6366004614931565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bef565b6114ac565b34801561050657600080fd5b50610532610515366004614931565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c64565b6114c2565b60405161040a9190614c98565b34801561057b57600080fd5b5061058f61058a366004614d79565b6114d3565b60405161040a929190614e25565b3480156105a957600080fd5b5061039b6105b8366004614931565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b610655366004614931565b611804565b34801561066657600080fd5b5061039b610675366004614931565b611a87565b34801561068657600080fd5b50610532610695366004614931565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e4a565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614e95565b611cc1565b61039b6106e8366004614e95565b611cd7565b3480156106f957600080fd5b50610532610708366004614931565b611ce2565b34801561071957600080fd5b5061039b610728366004614931565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149e4565b611dae565b34801561077757600080fd5b506103fd610786366004614f09565b611efd565b34801561079757600080fd5b506105326107a6366004614931565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f1366004614931565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e4a565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f84565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fa6565b612317565b3480156108bd57600080fd5b506104536108cc366004614fa6565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fbf565b6123d2565b3480156108fd57600080fd5b506103fd61090c36600461501b565b612493565b34801561091d57600080fd5b5061053261092c366004614955565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f84565b6127aa565b34801561099957600080fd5b5061039b6109a836600461509d565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150e8565b612869565b3480156109ee57600080fd5b5061039b6109fd366004614931565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fa6565b61298e565b60405161040a9190615129565b348015610a3b57600080fd5b5061039b610a4a366004615176565b612a73565b348015610a5b57600080fd5b50610a6f610a6a3660046151a2565b612af2565b60405161040a9695949392919061526c565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fa6565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff36600461509d565b612bdf565b60405161040a9291906152c5565b348015610b1e57600080fd5b50610453612c2b565b348015610b3357600080fd5b5061039b610b42366004615176565b612cf3565b348015610b5357600080fd5b506103fd610b623660046152de565b612dfe565b348015610b7357600080fd5b50610b87610b82366004614931565b612ef6565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614955565b612f45565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615349565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615378565b81548110610ce857610ce861538b565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615349565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148b4565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a09050565b6110f1576110f16153a1565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112805761117e81613212565b15611218578080602001905181019061119791906153fc565b93506111a2846130a0565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060149050613266565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060169050613266565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132e7565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190615430565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f89190615430565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e613266565b50565b60606114ba33858585613524565b949350505050565b6114ca6148c1565b6112d982613635565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a09050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613700565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138349050565b9650905080156116c2578580602001905181019061168191906153fc565b965061168c876130a0565b611698576116986153a1565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613700565b96506116cb565b6116cb866138ef565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061544d565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139fa565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148b4565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c34565b6040518463ffffffff1660e01b8152600401611b969392919061546a565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615349565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a09050565b611c5557611c556153a1565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061548e565b905250611cb781613700565b9695505050505050565b611cd3611ccc613cbc565b8383613d24565b5050565b611cd3338383613d24565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a09050565b611e2457611e246153a1565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112ba57611eb181613212565b15611ed15780806020019051810190611eca91906153fc565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a6016613266565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a09050565b611f7357611f736153a1565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154b6565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613700565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615349565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615378565b815481106121405761214061538b565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061548e565b90525061220981613700565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615378565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144c0565b6114a93382614569565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615378565b815481106123b6576123b661538b565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a09050565b612448576124486153a1565b6124528484613266565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a09050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614638565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613700565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138349050565b91509150811561278f578080602001905181019061273a91906153fc565b99506127458a6130a0565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613700565b9950612798565b612798816138ef565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615378565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144c0915050565b6128643384614569565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a092505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614add565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a6b576001821b841615612a605760018281548110612a0d57612a0d61538b565b6000918252602090912001546001600160a01b03168382612a2d81615523565b935081518110612a3f57612a3f61538b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8160010191506129e5565b825250919050565b816001600160a01b03163b600003612a9e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae857612ae8604051806040016040528060028152602001616b3160f01b815250336144c0565b611cd38282614569565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4657612c466153a1565b7f000000000000000000000000000000000000000000000000000000000000000015612c7c57506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190615430565b816001600160a01b03163b600003612d1e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae8576000612d4f33614694565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d8e9030908590879060040161546a565b602060405180830381865afa158015612dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dcf9190615349565b600114905080612df257604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614569565b60606000612e7586868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061470e92505050565b90506000306001600160a01b031682604051612e91919061553c565b600060405180830381855afa9150503d8060008114612ecc576040519150601f19603f3d011682016040523d82523d6000602084013e612ed1565b606091505b50935090508015612ee35750506114ba565b612eec836138ef565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f3d57805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f76576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300257600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffd9190615430565b613004565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561304b57600080fd5b505af115801561305f573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130da576130da6153a1565b6130e4848461470e565b9350622dc6c060005a9050871561315a57886001600160a01b0316828760405161310e919061553c565b6000604051808303818686fa925050503d806000811461314a576040519150601f19603f3d011682016040523d82523d6000602084013e61314f565b606091505b5090945092506131bd565b886001600160a01b03168287604051613173919061553c565b60006040518083038160008787f1925050503d80600081146131b1576040519150601f19603f3d011682016040523d82523d6000602084013e6131b6565b606091505b5090945092505b83613206576131cb816147c5565b6131ed57866131e2576131dd836138ef565b613206565b6131dd89600a613266565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322657506000919050565b602082810151906000908214613240575060009392505050565b50604083015161324f816147db565b61325a906040615558565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132db9084815260200190565b60405180910390a25050565b6006546060901561330e5760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b03841660009081526004602052604081205485918190036133495760405163163cbe4360e01b815260040160405180910390fd5b61800081161561336b57604051628e12d960e21b815260040160405180910390fd5b83600061337782614638565b90506001600160e01b031981166330d9c91560e01b14806133a857506001600160e01b0319811663d86ed3e560e01b145b806133c357506001600160e01b03198116630221347d60e61b145b806133de57506001600160e01b0319811663230dbd2960e01b145b806133f957506001600160e01b03198116635f9e7d7760e01b145b8061341457506001600160e01b031981166353c11f9960e01b145b15613432576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134a990613700565b905060006134b98a898b85613834565b97509050801561350757868060200190518101906134d791906153fc565b91506134e2826130a0565b6135025760405163a85ba64f60e01b8152601460048201526024016111c3565b613510565b613510876138ef565b505060006006555092979650505050505050565b6006546060901561354b5760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355581612099565b6135725760405163619c535960e01b815260040160405180910390fd5b600061357d85614638565b60408051610160810182526000808252600160208301529293506136009181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613700565b905060006136118888600085613834565b955090508061362357613623856138ef565b50506000600655509095945050505050565b61363d6148c1565b60608083806020019051810190613654919061556b565b8151919350915060009061367190840160209081019085016155c4565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c2919084018101908401615648565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff16111561372e5760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b161790506000608061375b8560e00151614814565b6001600160801b0316901b6137738560c00151614814565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137a8959493929190615693565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138129291602001614e25565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b03861661384e5761384e6153a1565b613858858461470e565b9450856001600160a01b03168486604051613873919061553c565b60006040518083038185875af1925050503d80600081146138b0576040519150601f19603f3d011682016040523d82523d6000602084013e6138b5565b606091505b50909250905081156138e65780516000036138e65760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139415760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f15760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614aca565b81518060208401fd5b6000613a247f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7a5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adc9190615349565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b565760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bae5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bd6817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd35750613cd333611b55565b613d175760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614479576000848483818110613d4457613d4461538b565b9050602002810190613d5691906156df565b613d649060208101906156f5565b905060001963ffffffff821601613e5857600080868685818110613d8a57613d8a61538b565b9050602002810190613d9c91906156df565b613daa90604081019061571b565b810190613db79190615176565b91509150868685818110613dcd57613dcd61538b565b9050602002810190613ddf91906156df565b613df0906040810190602001614931565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050505050614470565b60011963ffffffff821601613f63576000806000878786818110613e7e57613e7e61538b565b9050602002810190613e9091906156df565b613e9e90604081019061571b565b810190613eab9190615761565b925092509250878786818110613ec357613ec361538b565b9050602002810190613ed591906156df565b613ee6906040810190602001614931565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4357600080fd5b505af1158015613f57573d6000803e3d6000fd5b50505050505050614470565b60021963ffffffff821601614022576000806000878786818110613f8957613f8961538b565b9050602002810190613f9b91906156df565b613fa990604081019061571b565b810190613fb691906157a2565b925092509250878786818110613fce57613fce61538b565b9050602002810190613fe091906156df565b613ff1906040810190602001614931565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2994939291906157f0565b60031963ffffffff8216016140db576000808686858181106140465761404661538b565b905060200281019061405891906156df565b61406690604081019061571b565b8101906140739190615176565b915091508686858181106140895761408961538b565b905060200281019061409b91906156df565b6140ac906040810190602001614931565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60041963ffffffff821601614194576000808686858181106140ff576140ff61538b565b905060200281019061411191906156df565b61411f90604081019061571b565b81019061412c9190615176565b915091508686858181106141425761414261538b565b905060200281019061415491906156df565b614165906040810190602001614931565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60641963ffffffff821601614289578484838181106141b5576141b561538b565b90506020028101906141c791906156df565b6141d8906040810190602001614931565b6001600160a01b031663ca789464878787868181106141f9576141f961538b565b905060200281019061420b91906156df565b61421990604081019061571b565b8101906142269190614fa6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b50505050614470565b60651963ffffffff8216016142ee578484838181106142aa576142aa61538b565b90506020028101906142bc91906156df565b6142cd906040810190602001614931565b6001600160a01b031663245887fc878787868181106141f9576141f961538b565b60c81963ffffffff82160161438b576000808686858181106143125761431261538b565b905060200281019061432491906156df565b61433290604081019061571b565b81019061433f9190615823565b91509150614383888888878181106143595761435961538b565b905060200281019061436b91906156df565b61437c906040810190602001614931565b8484613524565b505050614470565b60c91963ffffffff8216016144575761444d868686858181106143b0576143b061538b565b90506020028101906143c291906156df565b6143d3906040810190602001614931565b856143de57346143e1565b60005b8888878181106143f3576143f361538b565b905060200281019061440591906156df565b61441390604081019061571b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132e792505050565b5060019250614470565b60405163b477011560e01b815260040160405180910390fd5b50600101613d28565b503415801590614487575080155b156144ba5760405133903480156108fc02916000818181858888f193505050501580156144b8573d6000803e3d6000fd5b505b50505050565b60006144cc8284614881565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba91614509913091879060040161546a565b602060405180830381865afa158015614526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454a9190615349565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff198116151580614580575060ff8116155b8061458e5750618000811615155b156145ac57604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145e3576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b600060048251101561468c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613c9f565b815180830151606091908015614737576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161474e816147db565b6147589190615378565b6001600160401b0381111561476f5761476f614add565b6040519080825280601f01601f191660200182016040528015614799576020820181803683370190505b506040516020016147ad949392919061587c565b60405160208183030381529060405291505092915050565b60006147d26040836158cb565b5a111592915050565b60008082601f16116147ee5760006147f1565b60015b60ff166147ff6020846158cb565b6148099190615558565b6112d99060206158ed565b60006001600160801b0382111561487d5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b60008282604051602001614896929190615904565b60405160208183030381529060405280519060200120905092915050565b61024a8061598a83390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561494357600080fd5b813561494e8161491c565b9392505050565b6000806040838503121561496857600080fd5b82356149738161491c565b915060208301356149838161491c565b809150509250929050565b60008083601f8401126149a057600080fd5b5081356001600160401b038111156149b757600080fd5b6020830191508360208285010111156149cf57600080fd5b9250929050565b80151581146114a957600080fd5b600080600080600080608087890312156149fd57600080fd5b8635614a088161491c565b955060208701356001600160401b0380821115614a2457600080fd5b614a308a838b0161498e565b909750955060408901359150614a45826149d6565b90935060608801359080821115614a5b57600080fd5b50614a6889828a0161498e565b979a9699509497509295939492505050565b60005b83811015614a95578181015183820152602001614a7d565b50506000910152565b60008151808452614ab6816020860160208601614a7a565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614a9e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b1b57614b1b614add565b604052919050565b60006001600160401b03821115614b3c57614b3c614add565b50601f01601f191660200190565b600082601f830112614b5b57600080fd5b8135614b6e614b6982614b23565b614af3565b818152846020838601011115614b8357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bb357600080fd5b8235614bbe8161491c565b915060208301356001600160401b03811115614bd957600080fd5b614be585828601614b4a565b9150509250929050565b600080600060608486031215614c0457600080fd5b8335614c0f8161491c565b925060208401356001600160401b0380821115614c2b57600080fd5b614c3787838801614b4a565b93506040860135915080821115614c4d57600080fd5b50614c5a86828701614b4a565b9150509250925092565b600060208284031215614c7657600080fd5b81356001600160401b03811115614c8c57600080fd5b6114ba84828501614b4a565b60208152614cac60208201835160ff169052565b60006020830151614cc2604084018260ff169052565b50604083015160608301526060830151614ce760808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d1a610180850183614a9e565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d60818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614d9457600080fd5b8735614d9f8161491c565b965060208801356001600160401b0380821115614dbb57600080fd5b614dc78b838c0161498e565b909850965060408a0135915080821115614de057600080fd5b614dec8b838c0161498e565b909650945060608a0135915080821115614e0557600080fd5b50614e128a828b0161498e565b989b979a50959850939692959293505050565b604081526000614e386040830185614a9e565b82810360208401526122098185614a9e565b600080600060408486031215614e5f57600080fd5b83356001600160401b03811115614e7557600080fd5b614e818682870161498e565b909790965060209590950135949350505050565b60008060208385031215614ea857600080fd5b82356001600160401b0380821115614ebf57600080fd5b818501915085601f830112614ed357600080fd5b813581811115614ee257600080fd5b8660208260051b8501011115614ef757600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2257600080fd5b86356001600160401b03811115614f3857600080fd5b614f4489828a0161498e565b9097509550506020870135614f588161491c565b935060408701359250606087013591506080870135614f768161491c565b809150509295509295509295565b60008060408385031215614f9757600080fd5b50508035926020909101359150565b600060208284031215614fb857600080fd5b5035919050565b60008060008060608587031215614fd557600080fd5b84356001600160401b03811115614feb57600080fd5b614ff78782880161498e565b909550935050602085013561500b8161491c565b9396929550929360400135925050565b60008060008060006060868803121561503357600080fd5b853561503e8161491c565b945060208601356001600160401b038082111561505a57600080fd5b61506689838a0161498e565b9096509450604088013591508082111561507f57600080fd5b5061508c8882890161498e565b969995985093965092949392505050565b6000806000604084860312156150b257600080fd5b8335925060208401356001600160401b038111156150cf57600080fd5b6150db8682870161498e565b9497909650939450505050565b600080602083850312156150fb57600080fd5b82356001600160401b0381111561511157600080fd5b61511d8582860161498e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561516a5783516001600160a01b031683529284019291840191600101615145565b50909695505050505050565b6000806040838503121561518957600080fd5b82356151948161491c565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151c057600080fd5b89356151cb8161491c565b985060208a01356151db8161491c565b975060408a0135965060608a01356001600160401b03808211156151fe57600080fd5b61520a8d838e0161498e565b909850965060808c013591508082111561522357600080fd5b61522f8d838e0161498e565b909650945060a08c013591508082111561524857600080fd5b506152558c828d0161498e565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061529f90830186614a9e565b82810360808401526152b18186614a9e565b905082810360a084015261208c8185614a9e565b8281526040602082015260006114ba6040830184614a9e565b600080600080604085870312156152f457600080fd5b84356001600160401b038082111561530b57600080fd5b6153178883890161498e565b9096509450602087013591508082111561533057600080fd5b5061533d8782880161498e565b95989497509550505050565b60006020828403121561535b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d9615362565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153c857600080fd5b81516153d6614b6982614b23565b8181528460208386010111156153eb57600080fd5b6114ba826020830160208701614a7a565b60006020828403121561540e57600080fd5b81516001600160401b0381111561542457600080fd5b6114ba848285016153b7565b60006020828403121561544257600080fd5b815161494e8161491c565b60006020828403121561545f57600080fd5b815161494e816149d6565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154ae576154ae615362565b505092915050565b600060ff821660ff81036154cc576154cc615362565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006001820161553557615535615362565b5060010190565b6000825161554e818460208701614a7a565b9190910192915050565b808201808211156112d9576112d9615362565b6000806040838503121561557e57600080fd5b82516001600160401b038082111561559557600080fd5b6155a1868387016153b7565b935060208501519150808211156155b757600080fd5b50614be5858286016153b7565b600080600080600060a086880312156155dc57600080fd5b855194506020860151935060408601516155f58161491c565b60608701519093506001600160e01b03198116811461561357600080fd5b60808701519092506001600160401b0381111561562f57600080fd5b61563b888289016153b7565b9150509295509295909350565b6000806000806080858703121561565e57600080fd5b845193506020850151925060408501516156778161491c565b60608601519092506156888161491c565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156d490830184614a9e565b979650505050505050565b60008235605e1983360301811261554e57600080fd5b60006020828403121561570757600080fd5b813563ffffffff8116811461494e57600080fd5b6000808335601e1984360301811261573257600080fd5b8301803591506001600160401b0382111561574c57600080fd5b6020019150368190038213156149cf57600080fd5b60008060006060848603121561577657600080fd5b83356157818161491c565b925060208401356157918161491c565b929592945050506040919091013590565b6000806000606084860312156157b757600080fd5b83356157c28161491c565b92506020840135915060408401356001600160401b038111156157e457600080fd5b614c5a86828701614b4a565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614a9e565b6000806040838503121561583657600080fd5b82356001600160401b038082111561584d57600080fd5b61585986838701614b4a565b9350602085013591508082111561586f57600080fd5b50614be585828601614b4a565b60008551602061588f8285838b01614a7a565b818401915086825285516158a881838501848a01614a7a565b85519201916158bc81838501848901614a7a565b91909101019695505050505050565b6000826158e857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d9615362565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614a9e56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea26469706673582212206902a7db24b0d3a778c1f364c2041c6224c0ba5a54b2a99ab7f21c6f5b9e285964736f6c63430008170033a26469706673582212207e43a6575dc8e2fa2a990c5657f67cff8a041baa7481620a4fd4a504d8ce577164736f6c63430008170033"

Methods

  • Parameters

    • address: string

    Returns SuperfluidMock

  • Parameters

    • signer: Signer

    Returns SuperfluidMock__factory

  • Parameters

    • nonUpgradable: boolean
    • appWhiteListingEnabled: boolean
    • Optional overrides: Overrides & {
          from?: string;
      }

    Returns Promise<SuperfluidMock>

  • Parameters

    • nonUpgradable: boolean
    • appWhiteListingEnabled: boolean
    • Optional overrides: Overrides & {
          from?: string;
      }

    Returns TransactionRequest

  • Parameters

    • address: string
    • signerOrProvider: Signer | Provider

    Returns SuperfluidMock

  • Returns SuperfluidMockInterface

Generated using TypeDoc