@astonic-io/astonic-bindings-ts
Version:
Astonic type generation and npm package deployment repo
1,534 lines • 80.6 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Reserve__factory = void 0;
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
var ethers_1 = require("ethers");
var _abi = [
{
type: "constructor",
inputs: [
{
name: "test",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "fallback",
stateMutability: "payable",
},
{
type: "function",
name: "addCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "addExchangeSpender",
inputs: [
{
name: "spender",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "addOtherReserveAddress",
inputs: [
{
name: "reserveAddress",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "addSpender",
inputs: [
{
name: "spender",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "addToken",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "assetAllocationSymbols",
inputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bytes32",
internalType: "bytes32",
},
],
stateMutability: "view",
},
{
type: "function",
name: "assetAllocationWeights",
inputs: [
{
name: "",
type: "bytes32",
internalType: "bytes32",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "checkIsCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "collateralAssetLastSpendingDay",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "collateralAssetSpendingLimit",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "collateralAssets",
inputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "exchangeSpenderAddresses",
inputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "frozenReservePlanqDays",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "frozenReservePlanqStartBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "frozenReservePlanqStartDay",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getAssetAllocationSymbols",
inputs: [],
outputs: [
{
name: "",
type: "bytes32[]",
internalType: "bytes32[]",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getAssetAllocationWeights",
inputs: [],
outputs: [
{
name: "",
type: "uint256[]",
internalType: "uint256[]",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getDailySpendingRatio",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getDailySpendingRatioForCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getExchangeSpenders",
inputs: [],
outputs: [
{
name: "",
type: "address[]",
internalType: "address[]",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getFrozenReservePlanqBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getOrComputeTobinTax",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "getOtherReserveAddresses",
inputs: [],
outputs: [
{
name: "",
type: "address[]",
internalType: "address[]",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getOtherReserveAddressesPlanqBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getReserveAddressesCollateralAssetBalance",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getReservePlanqBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getReserveRatio",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getTokens",
inputs: [],
outputs: [
{
name: "",
type: "address[]",
internalType: "address[]",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getUnfrozenBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getUnfrozenReservePlanqBalance",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getVersionNumber",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
{
name: "",
type: "uint256",
internalType: "uint256",
},
{
name: "",
type: "uint256",
internalType: "uint256",
},
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "initialize",
inputs: [
{
name: "registryAddress",
type: "address",
internalType: "address",
},
{
name: "_tobinTaxStalenessThreshold",
type: "uint256",
internalType: "uint256",
},
{
name: "_spendingRatioForPlanq",
type: "uint256",
internalType: "uint256",
},
{
name: "_frozenPlanq",
type: "uint256",
internalType: "uint256",
},
{
name: "_frozenDays",
type: "uint256",
internalType: "uint256",
},
{
name: "_assetAllocationSymbols",
type: "bytes32[]",
internalType: "bytes32[]",
},
{
name: "_assetAllocationWeights",
type: "uint256[]",
internalType: "uint256[]",
},
{
name: "_tobinTax",
type: "uint256",
internalType: "uint256",
},
{
name: "_tobinTaxReserveRatio",
type: "uint256",
internalType: "uint256",
},
{
name: "_collateralAssets",
type: "address[]",
internalType: "address[]",
},
{
name: "_collateralAssetDailySpendingRatios",
type: "uint256[]",
internalType: "uint256[]",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "initialized",
inputs: [],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isCollateralAsset",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isExchangeSpender",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isOtherReserveAddress",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isOwner",
inputs: [],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isSpender",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isStableAsset",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "isToken",
inputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "lastSpendingDay",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "otherReserveAddresses",
inputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "owner",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "registry",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "contract IRegistry",
},
],
stateMutability: "view",
},
{
type: "function",
name: "removeCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
{
name: "index",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "removeExchangeSpender",
inputs: [
{
name: "spender",
type: "address",
internalType: "address",
},
{
name: "index",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "removeOtherReserveAddress",
inputs: [
{
name: "reserveAddress",
type: "address",
internalType: "address",
},
{
name: "index",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "removeSpender",
inputs: [
{
name: "spender",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "removeToken",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
{
name: "index",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "renounceOwnership",
inputs: [],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setAssetAllocations",
inputs: [
{
name: "symbols",
type: "bytes32[]",
internalType: "bytes32[]",
},
{
name: "weights",
type: "uint256[]",
internalType: "uint256[]",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setDailySpendingRatio",
inputs: [
{
name: "ratio",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setDailySpendingRatioForCollateralAssets",
inputs: [
{
name: "_collateralAssets",
type: "address[]",
internalType: "address[]",
},
{
name: "collateralAssetDailySpendingRatios",
type: "uint256[]",
internalType: "uint256[]",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setFrozenPlanq",
inputs: [
{
name: "frozenPlanq",
type: "uint256",
internalType: "uint256",
},
{
name: "frozenDays",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setRegistry",
inputs: [
{
name: "registryAddress",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setTobinTax",
inputs: [
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setTobinTaxReserveRatio",
inputs: [
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "setTobinTaxStalenessThreshold",
inputs: [
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "spendingLimit",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "tobinTax",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "tobinTaxCache",
inputs: [],
outputs: [
{
name: "numerator",
type: "uint128",
internalType: "uint128",
},
{
name: "timestamp",
type: "uint128",
internalType: "uint128",
},
],
stateMutability: "view",
},
{
type: "function",
name: "tobinTaxReserveRatio",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "tobinTaxStalenessThreshold",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "transferCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
{
name: "to",
type: "address",
internalType: "address payable",
},
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "transferExchangeCollateralAsset",
inputs: [
{
name: "collateralAsset",
type: "address",
internalType: "address",
},
{
name: "to",
type: "address",
internalType: "address payable",
},
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "transferExchangePlanq",
inputs: [
{
name: "to",
type: "address",
internalType: "address payable",
},
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "transferOwnership",
inputs: [
{
name: "newOwner",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "transferPlanq",
inputs: [
{
name: "to",
type: "address",
internalType: "address payable",
},
{
name: "value",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "event",
name: "AssetAllocationSet",
inputs: [
{
name: "symbols",
type: "bytes32[]",
indexed: false,
internalType: "bytes32[]",
},
{
name: "weights",
type: "uint256[]",
indexed: false,
internalType: "uint256[]",
},
],
anonymous: false,
},
{
type: "event",
name: "CollateralAssetAdded",
inputs: [
{
name: "collateralAsset",
type: "address",
indexed: false,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "CollateralAssetRemoved",
inputs: [
{
name: "collateralAsset",
type: "address",
indexed: false,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "DailySpendingRatioForCollateralAssetSet",
inputs: [
{
name: "collateralAsset",
type: "address",
indexed: false,
internalType: "address",
},
{
name: "collateralAssetDailySpendingRatios",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "DailySpendingRatioSet",
inputs: [
{
name: "ratio",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "ExchangeSpenderAdded",
inputs: [
{
name: "exchangeSpender",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "ExchangeSpenderRemoved",
inputs: [
{
name: "exchangeSpender",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "OtherReserveAddressAdded",
inputs: [
{
name: "otherReserveAddress",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "OtherReserveAddressRemoved",
inputs: [
{
name: "otherReserveAddress",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "index",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "OwnershipTransferred",
inputs: [
{
name: "previousOwner",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "newOwner",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "RegistrySet",
inputs: [
{
name: "registryAddress",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "ReserveCollateralAssetsTransferred",
inputs: [
{
name: "spender",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "to",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "value",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "token",
type: "address",
indexed: false,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "ReservePlanqTransferred",
inputs: [
{
name: "spender",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "to",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "value",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "SpenderAdded",
inputs: [
{
name: "spender",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "SpenderRemoved",
inputs: [
{
name: "spender",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "TobinTaxReserveRatioSet",
inputs: [
{
name: "value",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TobinTaxSet",
inputs: [
{
name: "value",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TobinTaxStalenessThresholdSet",
inputs: [
{
name: "value",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TokenAdded",
inputs: [
{
name: "token",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "TokenRemoved",
inputs: [
{
name: "token",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "index",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
];
var _bytecode = "0x60806040523480156200001157600080fd5b506040516200532e3803806200532e833981810160405260208110156200003757600080fd5b50518060006200004f6001600160e01b03620000c016565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080620000b3576000805460ff60a01b1916600160a01b1790555b50506001600255620000c4565b3390565b61525a80620000d46000396000f3fe6080604052600436106103ef5760003560e01c8063894098d611610208578063b1c40da411610118578063e6b76e9c116100ab578063f0b7182b1161007a578063f0b7182b146111ab578063f240dae3146111de578063f2fde38b14611211578063f7165fee14611244578063fa9ed95a1461126e576103ef565b8063e6b76e9c146110f4578063e7e31e7a1461111e578063eae6011e14611151578063ec4f797b14611181576103ef565b8063e2511535116100e7578063e25115351461107c578063e30f579d146110b5578063e33a88e7146110ca578063e50a6c1e146110df576103ef565b8063b1c40da414610ed1578063ca56d33b14610ee6578063cae182fe14611016578063d48bfca714611049576103ef565b80639a206ece1161019b578063a8b94b8d1161016a578063a8b94b8d14610df3578063a91ee0dc14610e26578063aa6ca80814610e59578063ad62ad1014610e6e578063b003dcf114610e98576103ef565b80639a206ece14610d6c5780639c3e2f0f14610d9f578063a1ab55b314610db4578063a712af4614610dde576103ef565b8063919a1fbe116101d7578063919a1fbe14610cb85780639512f46414610ceb57806395130e5814610d24578063965366f314610d39576103ef565b8063894098d614610c465780638ce5877c14610c5b5780638da5cb5b14610c8e5780638f32d59b14610ca3576103ef565b80634f8e6e231161030357806370022cb41161029657806376769a601161026557806376769a6014610bbf5780637897a78e14610bd45780637b10399914610be95780637b52207514610bfe5780638438796a14610c31576103ef565b806370022cb4146109bc57806370d9a267146109f5578063715018a614610a0a57806372a6b8b014610a1f576103ef565b80635827ff8f116102d25780635827ff8f146109015780635a18b08b146109165780635c4a3145146109405780636be383fc14610979576103ef565b80634f8e6e231461084b57806350614ba01461087e57806354255be0146108b157806356b6d0d5146108ec576103ef565b8063172b45f71161038657806322796e831161035557806322796e831461074f57806338345dec1461078a57806339d7f76e146107bd57806340899365146107d25780634cea8ded14610818576103ef565b8063172b45f7146106a657806317f9a6f7146106bb57806319f37361146106e9578063220159681461071c576103ef565b80631218f982116103c25780631218f982146105de57806313baf1e614610643578063156d45991461067c578063158ef93e14610691576103ef565b806301da32bd146103f1578063042b7a541461041b5780630db279be1461047257806311bb0dcd146104ae575b005b3480156103fd57600080fd5b506103ef6004803603602081101561041457600080fd5b5035611283565b34801561042757600080fd5b5061045e6004803603606081101561043e57600080fd5b506001600160a01b0381358116916020810135909116906040013561136f565b604080519115158252519081900360200190f35b34801561047e57600080fd5b5061049c6004803603602081101561049557600080fd5b50356115b4565b60408051918252519081900360200190f35b3480156104ba57600080fd5b506103ef600480360360408110156104d157600080fd5b810190602081018135600160201b8111156104eb57600080fd5b8201836020820111156104fd57600080fd5b803590602001918460208302840111600160201b8311171561051e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111600160201b831117156105a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115d2945050505050565b3480156105ea57600080fd5b506105f3611846565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561062f578181015183820152602001610617565b505050509050019250505060405180910390f35b34801561064f57600080fd5b5061045e6004803603604081101561066657600080fd5b506001600160a01b0381351690602001356118a9565b34801561068857600080fd5b5061049c611acb565b34801561069d57600080fd5b5061045e611af1565b3480156106b257600080fd5b5061049c611b01565b3480156106c757600080fd5b506106d0611b63565b6040805192835260208301919091528051918290030190f35b3480156106f557600080fd5b5061045e6004803603602081101561070c57600080fd5b50356001600160a01b0316611c4d565b34801561072857600080fd5b5061045e6004803603602081101561073f57600080fd5b50356001600160a01b0316611c62565b34801561075b57600080fd5b50610764611daa565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b34801561079657600080fd5b5061049c600480360360208110156107ad57600080fd5b50356001600160a01b0316611dc4565b3480156107c957600080fd5b5061049c611f54565b3480156107de57600080fd5b506107fc600480360360208110156107f557600080fd5b5035611f5a565b604080516001600160a01b039092168252519081900360200190f35b34801561082457600080fd5b5061045e6004803603602081101561083b57600080fd5b50356001600160a01b0316611f81565b34801561085757600080fd5b5061045e6004803603602081101561086e57600080fd5b50356001600160a01b0316611f96565b34801561088a57600080fd5b5061049c600480360360208110156108a157600080fd5b50356001600160a01b0316611fb4565b3480156108bd57600080fd5b506108c6611fc6565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156108f857600080fd5b5061049c611fd3565b34801561090d57600080fd5b5061049c612297565b34801561092257600080fd5b506107fc6004803603602081101561093957600080fd5b5035612301565b34801561094c57600080fd5b5061045e6004803603604081101561096357600080fd5b506001600160a01b03813516906020013561230e565b34801561098557600080fd5b5061045e6004803603606081101561099c57600080fd5b506001600160a01b0381358116916020810135909116906040013561252f565b3480156109c857600080fd5b5061045e600480360360408110156109df57600080fd5b506001600160a01b0381351690602001356125a6565b348015610a0157600080fd5b5061049c6127a5565b348015610a1657600080fd5b506103ef6127ab565b348015610a2b57600080fd5b506103ef6004803603610160811015610a4357600080fd5b6001600160a01b03823516916020810135916040820135916060810135916080820135919081019060c0810160a0820135600160201b811115610a8557600080fd5b820183602082011115610a9757600080fd5b803590602001918460208302840111600160201b83111715610ab857600080fd5b919390929091602081019035600160201b811115610ad557600080fd5b820183602082011115610ae757600080fd5b803590602001918460208302840111600160201b83111715610b0857600080fd5b919390928235926020810135929190606081019060400135600160201b811115610b3157600080fd5b820183602082011115610b4357600080fd5b803590602001918460208302840111600160201b83111715610b6457600080fd5b919390929091602081019035600160201b811115610b8157600080fd5b820183602082011115610b9357600080fd5b803590602001918460208302840111600160201b83111715610bb457600080fd5b50909250905061283c565b348015610bcb57600080fd5b5061049c612a12565b348015610be057600080fd5b5061049c612a18565b348015610bf557600080fd5b506107fc612a34565b348015610c0a57600080fd5b5061045e60048036036020811015610c2157600080fd5b50356001600160a01b0316612a43565b348015610c3d57600080fd5b506105f3612a58565b348015610c5257600080fd5b5061049c612aaf565b348015610c6757600080fd5b506103ef60048036036020811015610c7e57600080fd5b50356001600160a01b0316612ab5565b348015610c9a57600080fd5b506107fc612bb2565b348015610caf57600080fd5b5061045e612bc1565b348015610cc457600080fd5b5061049c60048036036020811015610cdb57600080fd5b50356001600160a01b0316612be5565b348015610cf757600080fd5b5061045e60048036036040811015610d0e57600080fd5b506001600160a01b038135169060200135612bf7565b348015610d3057600080fd5b5061049c612d1c565b348015610d4557600080fd5b5061045e60048036036020811015610d5c57600080fd5b50356001600160a01b0316612d22565b348015610d7857600080fd5b5061045e60048036036020811015610d8f57600080fd5b50356001600160a01b0316612ead565b348015610dab57600080fd5b506105f3612ec2565b348015610dc057600080fd5b506103ef60048036036020811015610dd757600080fd5b5035612f22565b348015610dea57600080fd5b5061049c612fea565b348015610dff57600080fd5b5061049c60048036036020811015610e1657600080fd5b50356001600160a01b0316612ff0565b348015610e3257600080fd5b506103ef60048036036020811015610e4957600080fd5b50356001600160a01b031661301f565b348015610e6557600080fd5b506105f361310b565b348015610e7a57600080fd5b506103ef60048036036020811015610e9157600080fd5b503561316b565b348015610ea457600080fd5b506103ef60048036036040811015610ebb57600080fd5b506001600160a01b0381351690602001356131ed565b348015610edd57600080fd5b5061049c613413565b348015610ef257600080fd5b506103ef60048036036040811015610f0957600080fd5b810190602081018135600160201b811115610f2357600080fd5b820183602082011115610f3557600080fd5b803590602001918460208302840111600160201b83111715610f5657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610fa557600080fd5b820183602082011115610fb757600080fd5b803590602001918460208302840111600160201b83111715610fd857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061342d945050505050565b34801561102257600080fd5b5061045e6004803603602081101561103957600080fd5b50356001600160a01b03166137fd565b34801561105557600080fd5b5061045e6004803603602081101561106c57600080fd5b50356001600160a01b0316613812565b34801561108857600080fd5b5061045e6004803603604081101561109f57600080fd5b506001600160a01b03813516906020013561395a565b3480156110c157600080fd5b5061049c613ac3565b3480156110d657600080fd5b5061049c613aef565b3480156110eb57600080fd5b506105f3613af5565b34801561110057600080fd5b506103ef6004803603602081101561111757600080fd5b5035613b91565b34801561112a57600080fd5b506103ef6004803603602081101561114157600080fd5b50356001600160a01b0316613c62565b34801561115d57600080fd5b506103ef6004803603604081101561117457600080fd5b5080359060200135613d48565b34801561118d57600080fd5b5061049c600480360360208110156111a457600080fd5b5035613df8565b3480156111b757600080fd5b506103ef600480360360208110156111ce57600080fd5b50356001600160a01b0316613e0a565b3480156111ea57600080fd5b5061045e6004803603602081101561120157600080fd5b50356001600160a01b0316613f88565b34801561121d57600080fd5b506103ef6004803603602081101561123457600080fd5b50356001600160a01b0316613fa6565b34801561125057600080fd5b506107fc6004803603602081101561126757600080fd5b5035613ff9565b34801561127a57600080fd5b5061049c614006565b61128b612bc1565b6112ca576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b6112d38161400c565b516010556112fe6112e2614026565b604080516020810190915260105481529063ffffffff61404a16565b6113395760405162461bcd60e51b81526004018080602001828103825260268152602001806150b76026913960400191505060405180910390fd5b6040805182815290517fb08f0607338ad77f5b08ccf831e533cefcc2d373c173e87a8f61144f1d82be1e9181900360200190a150565b3360009081526009602052604081205460ff166113bd5760405162461bcd60e51b815260040180806020018281038252602c8152602001806151cf602c913960400191505060405180910390fd5b6001600160a01b0383166000908152600a602052604090205460ff166114145760405162461bcd60e51b815260040180806020018281038252602a8152602001806151a5602a913960400191505060405180910390fd5b600061141f85612ff0565b1161145b5760405162461bcd60e51b81526004018080602001828103825260408152602001806151116040913960400191505060405180910390fd5b6001600160a01b0384166000908152601760205260409020546201518042049081111561150d57600061148d86611dc4565b6001600160a01b038716600090815260176020526040902083905590506114f26114ed6114b983614052565b6001600160a01b0389166000908152601660209081526040918290208251918201909252905481529063ffffffff6140c016565b614416565b6001600160a01b0387166000908152601a6020526040902055505b6001600160a01b0385166000908152601a602052604090205483811015611576576040805162461bcd60e51b8152602060048201526018602482015277115e18d959591a5b99c81cdc195b991a5b99c81b1a5b5a5d60421b604482015290519081900360640190fd5b611586818563ffffffff61442716565b6001600160a01b0387166000908152601a60205260409020556115aa868686614469565b9695505050505050565b600c81815481106115c157fe5b600091825260209091200154905081565b6115da612bc1565b611619576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b80518251146116595760405162461bcd60e51b815260040180806020018281038252603e815260200180614ec6603e913960400191505060405180910390fd5b60005b82518110156118415760006001600160a01b031683828151811061167c57fe5b60200260200101516001600160a01b0316141580156116af57508181815181106116a257fe5b6020026020010151600014155b15611839576116d08382815181106116c357fe5b6020026020010151613f88565b61170b5760405162461bcd60e51b8152600401808060200182810382526037815260200180614f046037913960400191505060405180910390fd5b61173e611716614026565b61173284848151811061172557fe5b602002602001015161400c565b9063ffffffff61404a16565b6117795760405162461bcd60e51b81526004018080602001828103825260268152602001806150b76026913960400191505060405180910390fd5b61178882828151811061172557fe5b6016600085848151811061179857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082015181600001559050507f15ff5079dfbf448e4bb45ac83498c2ecb0833ad35916946bb683ccb49f8013a38382815181106117fa57fe5b602002602001015183838151811061180e57fe5b602090810291909101810151604080516001600160a01b039094168452918301528051918290030190a15b60010161165c565b505050565b6060601580548060200260200160405190810160405280929190818152602001828054801561189e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611880575b505050505090505b90565b60006118b3612bc1565b6118f2576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054839060ff16611961576040805162461bcd60e51b815260206004820152601f60248201527f746f6b656e206164647220776173206e65766572207265676973746572656400604482015290519081900360640190fd5b6004548310801561199b5750836001600160a01b03166004848154811061198457fe5b6000918252602090912001546001600160a01b0316145b6119d6576040516